2010-09-30 64 views
2

我有一個包含​​組件的JSF頁面,我正在設置一個硬編碼值。我已經設置了id,namevalue屬性。但是當我從託管bean訪問這個值時,我得到了null如何讀取託管bean中h:inputHidden的值

我也注意到,在運行時,名稱正在改變爲一些自動生成的ID。

感謝任何幫助。

回答

5

<h:inputHidden>的行爲是相同的作爲用於<h:inputText>組分例如:

<h:inputHidden id="myHiddenField" value="#{myBean.myValue}"/> 

將指豆myBean的屬性myValue。所以你必須在這個bean中提供getMyValue()setMyValue(String)

因此,如果您在客戶端(使用Javascript)更改此隱藏字段的值,則在提交表單後,新值將在bean端更新。

關於ID,您必須指定id屬性,否則JSF將爲您生成一個(例如j_id123例如)。如果您爲此屬性指定值,則HTML標記的ID將是您指定的標記,並以表單ID作爲前綴。因此,在下面的例子:

<h:form id="myForm"> 
    <h:inputHidden id="myField" .../> 

的HTML標籤<input>將有ID myForm:myField(注意作爲IDS的一個分隔:)。

0

您可以使用此:

@ManagedBean(name="myBean") 
@SessionScoped 
public class MyBean implements Serializable { 

    String myValue= "I'm Hidden value!"; 

    public String getMyValue() { 
     return myValue; 
    } 

    public void setMyValue(String myValue) { 
     this.myValue = myValue; 
    } 

}