JSF中值的逻辑

时间:2013-02-21 13:53:28

标签: java jsf-2

我在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页面上呈现的某些逻辑是否更好?

1 个答案:

答案 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;
}