如何获取使用jqueryjavascript计算其值的h:inputHidden元素的值

如何获取使用jqueryjavascript计算其值的h:inputHidden元素的值,javascript,jsf-2,Javascript,Jsf 2,我的要求是,当用户单击submit按钮时,新计算的值应存储在InAuthidden字段值中。我在jQuery中编写了一个函数,用于在单击submit按钮时计算InAuthidden字段的新值。新值将分配给INPUTHIDEN字段值。但问题是,在使用hidden.getValue()检索支持bean中的值时,它返回null值 jQuery code: function hidden(){ var valueCalculated = '3'; $('#hidden')

我的要求是,当用户单击submit按钮时,新计算的值应存储在InAuthidden字段值中。我在jQuery中编写了一个函数,用于在单击submit按钮时计算InAuthidden字段的新值。新值将分配给INPUTHIDEN字段值。但问题是,在使用hidden.getValue()检索支持bean中的值时,它返回null值

    jQuery code:
    function hidden(){
    var valueCalculated = '3';
    $('#hidden').val(valueCalculated);
    alert($('#hidden').val());  //displays 3 when submit button is clicked.
    }

   JSF code:
   <h:inputHidden binding="#{bean.hidden}"/>
jQuery代码:
函数隐藏(){
var valueCalculated='3';
$('隐藏').val(valueCalculated);
警报($(“#隐藏”).val();//单击提交按钮时显示3。
}
JSF代码:
在后台, 我有HTMLInputHidden类型的hidden的getter和setter,我使用getValue()检索隐藏值。 这应该返回valueCalculated,但返回null。 获取支持bean中计算值的方法是什么。

只有在调用操作阶段时,
HtmlInputHidden\getValue()
才会返回提交的值。它是在更新模型值阶段设置的。所以,如果您试图在bean的构造期间或者在调用操作阶段之前的其他JSF阶段获得它,您将得到
null

要解决这个问题,请重写代码逻辑,以便在正确的时间访问它;在命令按钮/链接操作方法中。否则,您必须从请求参数映射手动获取它

例如


@BalusC:我正在访问action方法本身中的值。但我得到一个空值。如果我只在Mozilla中返回登录页面并再次登录,那么隐藏的值将与之前计算的值一起设置。哪个JSF impl/version?尝试使用
value
而不是像我的回答中那样使用
binding
。@BalusC:我使用的是JSF2.0版本。我将使用value并检查它是否如您所说的那样工作。感谢您提供的信息。“JSF2.0”只是规范版本。哪一个impl?莫哈拉?我的脸?ADF?还有别的吗?哪个版本?莫哈拉2.0.5?MyFaces2.0.2?甚至可能是Mojarra 2.1.1?等等,在这里很好用。你的问题是由其他原因引起的。也许你根本没有
。可能
$('#hidden')
没有指向真正的隐藏输入(在浏览器中打开页面,查看源代码并检查生成的HTML id)。可能您访问了bean中的错误属性。等等等等。。
<h:form id="form">
    <h:inputHidden id="hidden" value="#{bean.hidden}" />
    <h:commandButton value="submit" action="#{bean.submit}" onclick="$('#form\\:hidden').val('foo')" />
</h:form>
public void submit() {
    // Here, in the bean's action method, it should already be set.
    System.out.println(hidden); // "foo"
}