我在JSF 2.0中有一个简单的问题,我需要建议什么是更好的解决方案。因此,在我的.xhtml页面上,有一个组件有2个值:是和否。
<h:outputLabel id=v1 value="#{someValue}"/>
<f:selectItem itemValue="0" itemLabel="#{msg['label.no']}" />
<f:selectItem itemValue="1" itemLabel="#{msg['label.yes']}" />
我想要完成的是获取f的默认值:基于outputLabel选择。 例如:如果outputLabel获得值:业余而不是默认值f:selectItem为“是”否则为“否”默认值。在支持bean或通过在xhtml页面上呈现的某些逻辑是否更好?
答案 0 :(得分:2)
您需要在输入组件的value
属性后面的属性中设置它。您没有显示完整的代码,但如果它是<h:selectOneRadio>
,那么
<h:outputLabel for="foo" value="#{bean.label}" />
<h:selectOneRadio id="foo" value="#{bean.value}">
<f:selectItem itemValue="0" itemLabel="#{msg['label.no']}" />
<f:selectItem itemValue="1" itemLabel="#{msg['label.yes']}" />
</h:selectOneRadio>
然后你应该在bean的(post)构造函数中设置#{bean.value}
。完整的图片不清楚,所以这是一个基本的启动示例,而不是一个非常适合的解决方案:
private String label;
private Integer value;
@PostConstruct
public void init() {
label = "Amateur";
value = "Amateur".equals(label) ? 1 : 0;
}