Richfaces 4用户输入时的动态选择选项

时间:2012-04-23 05:09:14

标签: select dynamic richfaces

我正在使用富脸选择组件。 当用户在select组件中手动输入一些东西时,我想要动态值。

<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个问题 1st:setUserINput在用户输入值时始终打印空字符串 第二:监听方法从不接听电话。

任何帮助?

2 个答案:

答案 0 :(得分:0)

问题很可能是在用户键入时没有选定值,并且此组件将允许值限制为指定的选择项。因此,部分输入无效,无法绑定到您的bean。

如果您使用rich:autocomplete,我认为您可以获得预期的行为。但是,如果您想限制允许的值,也许您可​​以保留rich:select并监听selectitem事件。

答案 1 :(得分:0)

覆盖getItems richfaces-utils.js文件夹下richfaces-core-impl-4.0.0.Final.jar的{​​{1}}文件中的richfaces-core-impl-4.0.0.Final\META-INF\resources功能。

更改推送项目的条件

if(p != -1) 

而不是

if(p == 0)

这应解决问题。