我有一个JSF页面,其中有一个h:inputHidden
组件,我正在设置一个硬编码值。我设置了id
,name
和value
属性。但是当我从托管bean访问值时,我得到null
。
我还注意到,在运行时,名称正在变为某个自动生成的id。
感谢任何帮助。
答案 0 :(得分:5)
<h:inputHidden>
的行为与<h:inputText>
组件的行为相同,例如:
<h:inputHidden id="myHiddenField" value="#{myBean.myValue}"/>
将引用bean myValue
的属性myBean
。因此,您必须在此bean中同时提供getMyValue()
和setMyValue(String)
。
因此,如果您在客户端更改此隐藏字段的值(使用Javascript),则在提交表单后,将在Bean端更新新值。
关于ID,您必须指定id
属性,否则JSF将为您生成一个(例如j_id123
之类的东西)。如果为此属性指定值,则HTML标记的ID将是您指定的ID,并以表单ID为前缀。所以在下面的例子中:
<h:form id="myForm">
<h:inputHidden id="myField" .../>
HTML <input>
代码的ID为myForm:myField
(请注意:
用作ID的分隔符。)
答案 1 :(得分: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;
}
}