首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenFaces SuggestionField不触发服务器端事件。

OpenFaces SuggestionField不触发服务器端事件。
EN

Stack Overflow用户
提问于 2014-05-19 10:53:07
回答 1查看 102关注 0票数 0

我对OpenFaces SuggestionField有个问题。

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

嗯,这就是我的问题,下拉列表在开始时是空的(因为在数据库中有20k+项),当用户开始在字段中键入某些内容时,应该会填充已经预先过滤过的项。然而,这种方法永远不会触发..。

下面是后台bean中字段的代码和受影响的方法:

代码语言:javascript
复制
<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);
}

filter -方法的方法标头是:

代码语言:javascript
复制
private List<String> filter(String filter);

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

我添加了valueChangeListener属性,因为我希望至少触发这个属性,但是要么我在那里也有问题,要么是出了什么问题……

无论如何,下面是这个方法的代码(是的,它只是日志;-)

代码语言:javascript
复制
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

每一个答案都很感谢,谢谢。:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-01 07:54:59

我发现了我的问题。

OpenFaces3.x(包括当前夜间构建)是与JSF2.2(或至少2.2.6+)不完全兼容的。正如夜间医生所说,它目前与2.1.11兼容。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23735925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档