我在使用f时遇到问题:ajax with t:selectOneRadio in layout =”spread“
没有layout =“spread”,这是有效的:
<t:selectOneRadio id="test" value="#{bean.type}" >
<f:selectItem itemLabel="yes" itemValue="1"/>
<f:selectItem itemLabel="no" itemValue="0"/>
<f:ajax render="label" />
</t:selectOneRadio>
<h:panelGroup id="label" layout="block">
<h:outputText value="OK" rendered="#{bean.type == 1}"/>
<h:outputText value="KO" rendered="#{bean.type == 0}"/>
</h:panelGroup>
当我点击收音机时,文本被修改,我的type属性在我的bean中按预期设置。 我的豆是:
@ManagedBean
@ViewScoped
public class Bean {
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
但是使用layout =“spread”,我的bean没有设置,setter没有调用,但渲染工作(测试它,检查html,在div中用id =“label”写foo并点击后)由于渲染,文本很清晰。
我的代码布局=“传播”:
<t:selectOneRadio id="test" value="#{bean.type}" layout="spread">
<f:selectItem itemLabel="yes" itemValue="1"/>
<f:selectItem itemLabel="no" itemValue="0"/>
<f:ajax render="label" />
</t:selectOneRadio>
<div><t:radio id="radio1" for="test" index="0"/></div>
<div><t:radio id="radio2" for="test" index="1"/></div>
<h:panelGroup id="label" layout="block">
<h:outputText value="OK" rendered="#{bean.type == 1}"/>
<h:outputText value="KO" rendered="#{bean.type == 0}"/>
</h:panelGroup>
我在版本1.1.14和JSF myfaces 2.2.8
中有tomahawk2.1