1

f:ajax と t:selectOneRadio を layout="spread" で使用すると問題が発生します

layout="spread" がなければ、これは機能しています:

<t:selectOneRadio  id="test" value="#{bean.type}" >
      <f:selectItem itemLabel="yes" itemValue="1"/>
      <f:selectItem itemLabel="no" itemValue="0"/>
      <f:ajax render="label" />
</t:selectOneRadio>


<h:panelGroup id="label" layout="block">
   <h:outputText value="OK" rendered="#{bean.type == 1}"/>
   <h:outputText value="KO" rendered="#{bean.type == 0}"/>
</h:panelGroup>

ラジオをクリックすると、テキストが変更され、タイプ属性が期待どおりに Bean に設定されます。私の豆は:

@ManagedBean
@ViewScoped
public class Bean {


    private String type;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

}

しかし、layout="spread" では、私の Bean は設定されず、setter は呼び出されませんが、レンダリングは機能します (テストするには、html を検査し、id="label" を使用して div に foo を書き込み、ラジオをクリックした後に、レンダリングのため、テキストは明確です。

私のコード layout="spread" :

    <t:selectOneRadio  id="test" value="#{bean.type}" layout="spread">
          <f:selectItem itemLabel="yes" itemValue="1"/>
          <f:selectItem itemLabel="no" itemValue="0"/>
          <f:ajax render="label" />
    </t:selectOneRadio>

    <div><t:radio id="radio1" for="test" index="0"/></div>
    <div><t:radio id="radio2" for="test" index="1"/></div>


    <h:panelGroup id="label" layout="block">
       <h:outputText value="OK" rendered="#{bean.type == 1}"/>
       <h:outputText value="KO" rendered="#{bean.type == 0}"/>
    </h:panelGroup>

バージョン 1.1.14 の tomahawk2.1 と JSF myfaces 2.2.8 があります。


この警告ダイアログのことですか?

ここに画像の説明を入力

テストすることにした場合、プロジェクトにコンパイル エラーが発生したときに警告ダイアログを表示するには、Promptに設定する必要があります。

後藤:

Eclipse - Windows - Preferences - Run/Debug - Lauching

Continue launch if project contains errors
Prompt

ここに画像の説明を入力

4

0 に答える 0