【发布时间】:2013-08-28 22:15:56
【问题描述】:
我尝试制作自动完成自定义建议演示的时间过长。 该演示部分工作,因为我可以在 f12 调试器中看到建议响应,但它没有显示在下拉框中。 我正在做以下事情
POM:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<org.richfaces.version>4.3.3.Final</org.richfaces.version>
</properties>
<repositories>
<repository>
<id>org.openfaces</id>
<url>http://repository.openfaces.org/repository</url>
</repository>
<repository>
<id>jfree</id>
<url>http://www.ibiblio.org/maven/jfree/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.richfaces</groupId>
<artifactId>richfaces-bom</artifactId>
<version>${org.richfaces.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.richfaces.ui</groupId>
<artifactId>richfaces-components-ui</artifactId>
<version>${org.richfaces.version}</version>
</dependency>
<dependency>
<groupId>org.richfaces.core</groupId>
<artifactId>richfaces-core-impl</artifactId>
<version>${org.richfaces.version}</version>
</dependency>
豆子:
@ManagedBean
@RequestScoped
public class TagCollector implements Serializable{
private static final long serialVersionUID = 4930140495481611695L;
String tagName;
public Converter getTagNameConverter(){
return new Converter() {
@Override
public String getAsString(FacesContext context, UIComponent converter, Object value) {
System.out.println("getAsString=" +(String)value);
return (String)value;
}
@Override
public Object getAsObject(FacesContext context, UIComponent converter, String value) {
System.out.println("getAsObject=" +value);
return value;
}
};
}
public List<String> getSuggestedTags(){
String searchString = Faces.var("searchString", String.class);
System.out.println("getSuggestedTags searchString="+ searchString);
List<String> suggestedTags = Arrays.asList(new String[]{"ford", "mazda", "fiat"});
return suggestedTags;
}
public String getTagName() {
return tagName;
}
public void setTagName(String tagName) {
this.tagName = tagName;
}
}
xhtml:
<h:form>
<h:outputText value="Enter state" />
<rich:autocomplete mode="ajax" minChars="1" showButton="true"
autocompleteMethod="#{userBean.autocomplete}">
</rich:autocomplete>
</h:form>
面孔配置:
<managed-bean>
<managed-bean-name>tagCollector</managed-bean-name>
<managed-bean-class>org.taagad.tag.model.TagCollector</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
我真的在网上搜索了几个小时却一无所获,任何想法都会有所帮助。
【问题讨论】:
-
如果您可以在代码中看到
<div>包含建议但在页面上看不到,那么问题出在 CSS 或 JavaScript 上。自动完成方法有什么作用? -
没有css,因为我在这个测试中使用默认样式,所以它不可能是css问题。自动完成只返回用户可以设置为标签的汽车制造商列表。问题在客户端是确定性的,因为我确实看到了网络上的数据。
-
解决方案是使用 JSF 2.1.25
-
你以前用过什么? RF4 与 JSF 1 不兼容。
标签: jsf-2 richfaces client-side facelets