JSF输入到多个支持bean属性

ggb*_*667 3 tags jsf backing-beans

我有一些情况下我有一个JSF页面和一个输入我想在支持bean上设置多个值而不在辅助bean中执行代码.

我可以设置一个值:

 <h:selectOneRadio id="selectMembershipLevel" class="TODO_SELECT" 
value="#{joinBackingBean.map[joinBackingBean.map.primary_memberInfo_membershipType_code]}">
 <f:selectItem id="basic" itemLabel="#{overrideMsg.pbBasic}" itemValue="B" />
 <f:selectItem id="plus" itemLabel="#{overrideMsg.pbPlus}" itemValue="P" />
 <f:selectItem id="plusRV" itemLabel="#{overrideMsg.pbPlusRV}" itemValue="RV" />
Run Code Online (Sandbox Code Playgroud)

但是如果我想在JSF页面上一次设置多个可以做到的话吗?

#{joinBackingBean.map[joinBackingBean.map.primary_memberInfo_membershipType_code]}
#{joinBackingBean.map[joinBackingBean.map.primary_memberInfo_membershipType_desc]}//Bdesc
#{joinBackingBean.map[joinBackingBean.map.primary_memberInfo_membershipType_type]}//Btype
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 5

绑定其他属性<h:inputHidden>change在第一次输入的事件期间使用JavaScript 将这些隐藏输入的值操作为与第一个输入的当前值相同.

这是一个启动示例:

<h:form id="form">
    <h:selectOneRadio value="#{bean.input1}" onchange="document.getElementById('form:input2').value = document.getElementById('form:input3').value = this.value">
        <f:selectItem itemValue="one" />
        <f:selectItem itemValue="two" />
        <f:selectItem itemValue="three" />
    </h:selectOneRadio>
    <h:inputHidden id="input2" value="#{bean.input2}" />
    <h:inputHidden id="input3" value="#{bean.input3}" />
    ...
</h:form>
Run Code Online (Sandbox Code Playgroud)

显然,随意重构JS函数或抛出一些jQuery.请记住,如果客户端已禁用JS,并且最终用户可以操作JS代码并请求参数,则这一切都将无效.如果您绝对需要值相等,则服务器端解决方案更加强大.