我有一個包含組件的JSF頁面,我正在設置一個硬編碼值。我已經設置了id
,name
和value
屬性。但是當我從託管bean訪問這個值時,我得到了null
。如何讀取託管bean中h:inputHidden的值
我也注意到,在運行時,名稱正在改變爲一些自動生成的ID。
感謝任何幫助。
我有一個包含組件的JSF頁面,我正在設置一個硬編碼值。我已經設置了id
,name
和value
屬性。但是當我從託管bean訪問這個值時,我得到了null
。如何讀取託管bean中h:inputHidden的值
我也注意到,在運行時,名稱正在改變爲一些自動生成的ID。
感謝任何幫助。
的<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的一個分隔:
)。
您可以使用此:
@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;
}
}