1

<h:selectOneRadio>JSF2のコンポーネントを使用して、ラジオボタンを作成します。1 つは「はい」で、もう 1 つは「いいえ」です。ここではチェックボックスを使用できないことに注意してください。

バッキング Bean にはbooleanプロパティがあります。「はい」が選択されたときはブール値になり、「いいえ」が選択されtrueたときはfalse. どうすればこれを達成できますか?

これはそれをしません:

<h:selectOneRadio value="#{bean.bool}">
    <f:selectItem itemValue="false" itemLabel="Yes" />
    <f:selectItem itemValue="true" itemLabel="No" />
    <f:ajax event="change" render="theDiv" />
</h:selectOneRadio>
<h:panelGroup layout="block" id="theDiv" rendered="#{bean.bool}">
....
</panelGroup>
4

1 に答える 1

0

JSF は Web サーバーで実行され、HTML を生成します。Ajax/JavaScript は Web ブラウザーで実行され、JSF によって生成された HTML 出力で動作します。それ自体では HTML にレンダリングされない JSF コンポーネントの HTML 表現を ajax 更新することはできません。常にレンダリングされるJSF コンポーネントの HTML 表現を ajax 更新する必要があります。

<h:selectOneRadio value="#{bean.bool}">
    <f:selectItem itemValue="false" itemLabel="Yes" />
    <f:selectItem itemValue="true" itemLabel="No" />
    <f:ajax render="foo" />
</h:selectOneRadio>
<h:panelGroup id="foo">
    <h:panelGroup layout="block" id="theDiv" rendered="#{bean.bool}">
    ...
    </panelGroup>
</h:panelGroup>

event="change"(これは間違っていて、デフォルトのものはすでに正しいので削除したことに注意してください)

以下も参照してください。

于 2012-09-25T16:41:46.637 に答える