我有一个名为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);
}

07-23 11:13