时间:2013-09-16 21:42:13

标签: jsf primefaces jsf-2.2

我遇到了jsf 2.2,primefaces 3.5和apache tomcat服务器的问题。 我试图从javascript获取一个值到支持bean。

function handleInviteMessage(data) {
            alert(data);
            document.getElementById('form:sessionIdHidden').value = data;
            remoteChangeCommand();
            invite.show();
        }

到目前为止一直有效。 Firebug的快速浏览显示了这一点。 (值是正确的)

 <input id="form:sessionIdHidden" type="hidden" name="form:sessionIdHidden" value="2_MX4zNTk3Nzg1Mn5-TW9uIFNlcCAxNiAxNDoxNzoyMiBQRFQgMjAxM34wLjgwNDk5ODd-">

但无论我尝试什么,价值都不会进入支持bean。我为“sessionId”设置了常规的getter和setter方法,并将变量注册为托管属性。

<managed-bean>
    <managed-bean-name>sessionController</managed-bean-name>
    <managed-bean-class>edu.hm.cs.session.SessionController</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
    <managed-property> 
        <property-name>sessionId</property-name> 
        <property-class>java.lang.String</property-class> 
        <null-value></null-value> 
    </managed-property> 
</managed-bean>

这是hiddenInput的设置。

<h:form name="form>
   <h:inputHidden id="sessionIdHidden" value="#{sessionController.sessionId}" />
</form>

我尝试了几种方法来获取支持bean的值,包括setPropertyActionListener,通过FacesContext,但我没有得到任何有用的结果。存在同样的问题

1 个答案:

答案 0 :(得分:0)

对此的简单回答是使用h:inputHidden是只读的。虽然我无法找到支持此声明的文档(并且在我的IDE中,它确实错误地说&#34;访问:读/写&#34;)但我在这个问题中找到了解决方案和详细解释: Why is InputHidden readonly attribute not in JSF documentation?