0

我对 OpenFaces SuggestionField 有疑问。

我创建了一个包含 SuggestionField 的站点,并将SuggestionMode 设置为“自定义”。然后我添加了一个 dropDownItems 子标签,它应该让所有项目都显示出来,对吗?

好吧,这就是我的问题,下拉项目在开始时是空的(因为在数据库中有 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);

根据这个站点,“自定义”模式应该向服务器发送一个 ajax 请求。

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

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

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

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

  • 操作系统:Windows 7
  • 服务器:Tomcat 7.0.42
  • 爪哇:1.7.0_51
  • JSF:2.2(莫哈拉 2.2)
  • 开放面:3.1.EA1.1287

每个答案都表示赞赏,在此先感谢。:-)

4

1 回答 1

0

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

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

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

于 2014-07-01T07:54:59.360 回答