0

リッチフェイス選択コンポーネントを使用しています。ユーザーが選択コンポーネントに手動で何かを入力するときに動的な値が必要です。

<rich:select enableManualInput="true" defaultLabel="start typing for select" value="#{supplierSearchBean.userInput}">
                        <a4j:ajax event="keyup" execute="@this" listener="#{supplierSearchBean.userInputChange}"/>
                        <f:selectItems value="#{supplierSearchBean.selectOptions}" />
                        </rich:select> 

次のようなJavaコード

public void userInputChange(ActionEvent  ae){
       Map map = ae.getComponent().getAttributes();
       System.out.println(map.toString());

   }


 public void setUserInput(String userInput) {
       System.out.println("userINput = " + userInput);
       this.userInput = userInput;
   }

ここで私は2つの問題を見つけました1番目:ユーザータイプ値の場合、setUserINputは常に空の文字列を出力します2番目:リスナーメソッドは決して呼び出しを取得しません。

何か助けはありますか?

4

2 に答える 2

0

問題はおそらく、ユーザーが入力するときに選択された値がなく、このコンポーネントが許可される値を指定された選択項目に制限することです。したがって、部分的な入力は無効であり、Bean にバインドできません。

代わりにa を使用すると、期待どおりの動作が得られると思いますrich:autocomplete。ただし、許可される値を制限したい場合は、イベントを保持してrich:selectリッスンすることができます。selectitem

于 2012-05-10T08:06:15.043 に答える