我有一个名为addPage.jsf的页面,我将departmentsView1数据控件拖放为一个表单。我正在使用hr模式的部门表。在createInsert操作之后,我将使用除departmentId之外的department表的空字段。我需要从支持bean或托管bean填充部门ID。如下所示
我尝试了以下内容。在这个页面的支持bean中,我有一个类型为int的字段idVal,以及用于此的setter和getter。领域。在departmentId的属性检查器中,我粘贴了#{backingBeanScope.backing_addPage.idVal}。但是,当我按下提交记录时,不会对db进行插入并显示一些错误。
错误 AppModule.DepartmentsView1中的属性DepartmentId是必需的。
如果错了,请纠正我。
我的要求是我有从视图对象创建的表单,我需要从支持bean或托管bean填充id值,以便用户无需输入id值。
答案 0 :(得分:1)
建议的方法是从DepartmentVORowImpl.create(AttributeList)方法填充department id,如下所示:
@Override
protected void create(AttributeList attributeList) {
super.create(attributeList);
this.setDepartmentId(....);
}
如果您使用db序列(Oracle db)生成部门ID值,则可以使用以下代码:
@Override
public void create(AttributeList attributeList) {
super.create(attributeList);
SequenceImpl seq = new SequenceImpl("LOG_SEQ", getDBTransaction());
Number seqNextval = seq.getSequenceNumber();
setDepartmentId(seqNextval);
}
答案 1 :(得分:0)
单击“提交”,您将直接调用操作绑定或调用某个方法,然后以编程方式调用操作绑定..?
另外请告诉我你是如何调用createInsert的?以声明或编程方式......?