我正在使用富脸选择组件。 当用户在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在用户输入值时始终打印空字符串 第二:监听方法从不接听电话。
任何帮助?
答案 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)
这应解决问题。