我有一个名为addPage.jsf的页面,在其中我以表格形式拖放了DepartmentsView1数据控件。我正在使用hr模式的部门表。完成createInsert操作后,我将进入该页面,其中包含Department部门的空字段(departmentId)。我需要从支持Bean或托管Bean填充部门ID。像下面
我尝试了以下方法。在此页面的后备bean中,我有一个类型为int的idVal字段,为此有setters和getters。领域。在departmentId的属性检查器中,我粘贴了#{backingBeanScope.backing_addPage.idVal}。但是,当我按下提交记录时,未将其插入db并显示一些错误。
错误
AppModule.DepartmentsView1中的属性DepartmentId是必需的。
如果有任何地方不对,请纠正我。
我的要求是我从视图对象创建了表单,我需要从后备bean或托管bean填充id值,以便用户无需输入id值。
最佳答案
推荐的方法是从DepartmentVORowImpl.create(AttributeList)方法填充部门ID,如下所示:
@Override
protected void create(AttributeList attributeList) {
super.create(attributeList);
this.setDepartmentId(....);
}
如果使用数据库序列(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);
}