【问题标题】:How to read a value from a h:inputHidden in the managed bean如何从托管 bean 中的 h:inputHidden 读取值
【发布时间】:2010-09-30 04:18:22
【问题描述】:

我有一个 JSF 页面,其中有一个 h:inputHidden 组件,我正在设置一个硬编码值。我已经设置了idnamevalue 属性。但是当我从托管 bean 访问值时,我得到了null

我还注意到,在运行时,名称会更改为某个自动生成的 id。

感谢任何帮助。

【问题讨论】:

    标签: jsf


    【解决方案1】:

    <h:inputHidden> 的行为与 <h:inputText> 组件的行为相同,例如:

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

    将引用 bean myBean 的属性 myValue。因此,您必须在此 bean 中同时提供 getMyValue()setMyValue(String)

    因此,如果您在客户端更改此隐藏字段的值(使用 Javascript),那么一旦提交表单,新值将在 bean 端更新。

    关于ID,你必须指定id属性,否则JSF会为你生成一个(例如j_id123)。如果您为此属性指定一个值,则 HTML 标记的 ID 将是您指定的 ID,并以您的表单 ID 为前缀。所以在下面的例子中:

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

    HTML &lt;input&gt; 标记将具有 id myForm:myField(注意 : 用作 id 的分隔符)。

    【讨论】:

      【解决方案2】:

      你可以用这个:

      @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;
          }   
      
      }
      

      【讨论】:

        猜你喜欢
        • 2017-07-07
        • 2013-07-06
        • 2012-02-29
        • 2013-02-16
        • 1970-01-01
        • 2014-09-29
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        相关资源
        最近更新 更多