2015-04-03 32 views
0

我有一個名爲addPage.jsf的頁面,我拖放了departmentsView1數據控件作爲窗體。我正在使用hr schema的部門表。在createInsert操作之後,我將使用除departmentId以外的部門表的空字段的頁面。我需要從支持bean或託管bean填充部門ID。像下面Oracle ADF:如何從託管支持或託管bean中填充DepartmentId值

enter image description here

我用下面的嘗試。在這個頁面的後臺bean中,我有一個int類型的字段idVal,以及setter和getters。領域。在departmentId的屬性檢查器中,我粘貼了#{backingBeanScope.backing_addPage.idVal}。但是,當我按提交記錄不會嵌入數據庫並顯示一些錯誤。

錯誤 在AppModule.DepartmentsView1中屬性DepartmentId是必需的。

如果我錯了任何地方請糾正我。

我的需求是我從視圖對象創建窗體,我需要從支持bean或託管bean填充id值,以便用戶不需要輸入id值。

+1

是與'DepartmentId'字段關聯的*必填字段*消息嗎?相應的bean的範圍是什麼?您至少需要一個視圖範圍的託管bean,以便在每個回發後維護bean的實例,如果我是你,我不會願意向最終用戶顯式顯示這些自動生成的鍵值。 – Tiny 2015-04-03 02:42:06

+0

感謝您的時間。我將bean的範圍作爲會話。但沒用。同樣的錯誤。其實我的應用程序需要顯示ID給用戶。 – Abdul 2015-04-03 06:15:02

+0

此消息,'AppModule.DepartmentsView1中的錯誤屬性DepartmentId是必需的',表示該字段未提供任何值。在提交表單之前,這個值可能會丟失(我不熟悉Oracle-ADF,如果它必須對具體問題做些什麼)。 – Tiny 2015-04-03 06:20:04

回答

0

點擊Commit後,您直接調用操作綁定或調用某個方法,然後以編程方式調用操作綁定。

也請讓我知道你是如何調用createInsert?它的聲明或編程..?

1

這樣做的推薦的方法是從DepartmentVORowImpl.create(AttributeList的)方法填充的部門ID,如下圖所示:

@Override 
protected void create(AttributeList attributeList) { 

     super.create(attributeList); 

     this.setDepartmentId(....); 
} 

如果你使用一個數據庫序列(Oracle數據庫)來創造價值的部門ID ,您可以使用此代碼:

@Override 
public void create(AttributeList attributeList) { 
    super.create(attributeList); 
    SequenceImpl seq = new SequenceImpl("LOG_SEQ", getDBTransaction()); 
    Number seqNextval = seq.getSequenceNumber(); 
    setDepartmentId(seqNextval); 
}