OpenFaces SuggestionField不会触发服务器端事件

时间:2014-05-19 10:53:07

标签: java jsf openfaces

我的OpenFaces SuggestionField存在问题。

我创建了一个包含SuggestionField的网站,并将suggestionMode设置为“custom”。然后我添加了一个dropDownItems子标记,它应该显示所有项目,对吗?

嗯,这是我的问题,dropdown-items在开始时是空的(因为在数据库中有20k +项)并且当用户开始在字段中键入内容时应该填充已经预过滤的项目。但是,该方法永远不会触发......

以下是该字段的代码以及支持bean中受影响的方法:

<o:suggestionField id="adr" value="#{addressBean.selectedAddressString}" suggestionMode="custom" valueChangeListener="#{addressBean.valueChanged}">
    <f:ajax event="change" execute="adr" render="region x y"></f:ajax>
    <o:dropDownItems value="#{addressBean.addressStrings}"/>
</o:suggestionField>

public List<String> getAddressStrings() {
    String filter = Faces.var("searchString", String.class);
    logger.debug(filter);
    return filter(filter);
}

过滤器的方法头 - 方法是:

private List<String> filter(String filter);

根据this网站,“自定义”模式应向服务器发送ajax请求。

我添加了valueChangeListener属性,因为我希望至少会触发这个属性,但要么我也有问题,要么出现问题......

无论如何,这是这个方法的代码(是的,它只是记录;-))

public void valueChanged(ValueChangeEvent vce){
    logger.debug("something changed "+vce.getNewValue());
}

据我所知,所有组件都有大量不同版本,可能每种解决方案看起来都不同,以下是我使用的版本:

  • 操作系统:Windows 7
  • 服务器:Tomcat 7.0.42
  • Java:1.7.0_51
  • JSF:2.2(Mojarra 2.2)
  • OpenFaces:3.1.EA1.1287

感谢每一个答案,提前谢谢。 : - )

1 个答案:

答案 0 :(得分:0)

好吧,我发现了我的问题。

Openfaces 3.x(包括当前的夜间版本)与JSF 2.2(或至少2.2.6+)不完全兼容。正如nightly-doc所说,它目前与2.1.11兼容。

其中一个不兼容的症状是建议字段不会触发服务器端事件。

相关问题