我遇到了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,但我没有得到任何有用的结果。存在同样的问题
答案 0 :(得分:0)
对此的简单回答是使用h:inputHidden是只读的。虽然我无法找到支持此声明的文档(并且在我的IDE中,它确实错误地说&#34;访问:读/写&#34;)但我在这个问题中找到了解决方案和详细解释: Why is InputHidden readonly attribute not in JSF documentation?