0

我在 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']}" />

我想要完成的是根据 outputLabel 获取 f:select 的默认值。例如:如果 outputLabel 获取值:业余而不是默认值 f:selectItem 为“是”,否则为“否”默认值。在支持 bean 中使用一些逻辑还是通过在 xhtml 页面上呈现更好?

4

1 回答 1

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.value}in bean的(post)构造函数。完整的图片还不清楚,所以这里是一个基本的启动示例,而不是一个非常合适的解决方案:

private String label;
private Integer value;

@PostConstruct
public void init() {
    label = "Amateur";
    value = "Amateur".equals(label) ? 1 : 0;
}
于 2013-02-21T14:10:08.917 回答