0

JSF 2.0 に単純な問題があり、より良い解決策についてアドバイスが必要です。したがって、私の .xhtml ページには、Yes と No の 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}次に、Bean の (ポスト) コンストラクターを設定する必要があります。全体像は不明であるため、適切なソリューションではなく、基本的なキックオフの例を次に示します。

private String label;
private Integer value;

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