0

Mojara JSF 2.1.21 で Spring Webflow 2.4.0.M1 を使用しています。

私は次のような非常に単純な h:selectOneMenu を持っています:

<h:selectOneMenu id="title" value="#{person.title}" required="true" requiredMessage="Required title">
        <f:selectItem noSelectionOption="true" itemLabel="Please Select" itemValue="" />
        <f:selectItem itemLabel="Mr" itemValue="MR" />
        <f:selectItem itemLabel="Mrs" itemValue="MRS" />
    </h:selectOneMenu>
    <p:message for="title"/>

「選択してください」に値を残してフォームを送信すると、必要なメッセージが表示されます。次にオプション「Mr」を選択して再度送信すると、ページの他のフィールドにエラーがあり、ページがリロードされ、タイトルに必要なメッセージが表示されなくなり、期待どおり Mr が選択されます。その後、[選択してください] に戻して再度送信すると、必要なメッセージが再度表示されますが、選択されたオプションは [選択してください] ではなく [Mr] に戻ります。#{person.title} EL は文字列にバインドされており、デフォルトは空の文字列です。これまでのところ、これは selectOneMenu でのみ問題になっているようですが、ah:inputText で同じようなことをすると正しく動作します。

何か案は?webflow 2.3.2.RELEASE でも試してみましたが、同じ問題が発生します。

これと同じ問題のようです: JAVASERVERFACES-932これは約 4 年前のもので、解像度は固定されています。それは間違いなく修正されていません。MenuRenderer を拡張し、Jira の問題の最後に記載されている提案で renderOption メソッドをオーバーライドしてみます。

4

1 に答える 1

0

MenuRenderer を拡張し、Jira の問題の最後に記載されている提案で renderOption メソッドをオーバーライドすると、問題が修正されることを確認できます。

パッチを適用したレンダラーを faces-config.xml に追加することを忘れないでください

<render-kit>
    <renderer>  
        <component-family>javax.faces.SelectOne</component-family>
        <renderer-type>javax.faces.Menu</renderer-type>
        <renderer-class>your.package.PatchedMenuRenderer</renderer-class>
    </renderer>
</render-kit>
于 2013-07-27T14:06:38.247 に答える