在ADF的开发过程中,经常会遇到给一些非数据字段赋初始值,如果对于一个调查问卷的功能,要求在进入页面时候,要给“是否满意”字段赋初始值为“满意”,但是“是否满意”字段是一个非数据字段,是从lookups里面根据code取出来的meaning,也就是说需要给这个meaning赋初始值,如果直接在该字段的default上面控制是不可以的,因为会涉及到一个多语言的问题,对于一个“满意”的结果,可以回出现多种结果,比如中文下是“满意”,英文下是“Satisfaction”等。但是我们可以通过在code上面赋初始值,因为不管哪种语言环境下,code的值是唯一的,所以一般是通过给code赋初始值,达到给meaning赋初始值。
下面把employee的jobtitle赋初始值作为例子。
首先创建EmployeesVO,jobTitle字段从jobs表总获取值,jobId和jobTitle通过lov关联。
为EmployeesVO产生相应的行实现类,EmployeesVORowImpl,通过继承,产生create方法,在create方法中,给jobId赋初始值
把EmployeeVO拖到页面上显示,出现问题,并不能如想象中的根据jobId去给jobTitle赋初始值
解决方法是把jobId也做成一个lov,并关联到jobTitle,并把jobId的autoSubmit改为true,同样需要上面的步骤,为EmployeesVO产生相应的行实现类,EmployeesVORowImpl, 并覆盖create方法。
在页面重新拖拽jobId属性,再次运行页面,jobTitle赋初始值成功。