Jsf 2 RichFaces 4自动完成未显示建议

Jsf 2 RichFaces 4自动完成未显示建议,jsf-2,richfaces,client-side,facelets,Jsf 2,Richfaces,Client Side,Facelets,我试图做一个自动完成自定义建议演示的时间太长了。 演示部分工作,因为我可以在f12调试器中看到建议响应,但它没有显示在下拉框中。 我正在做以下工作 POM: UTF-8 UTF-8 4.3.3.最终版本 org.openfaces http://repository.openfaces.org/repository jfree http://www.ibiblio.org/maven/jfree/ org.richfaces richfaces bom表 ${org.richfaces.ver

我试图做一个自动完成自定义建议演示的时间太长了。 演示部分工作,因为我可以在f12调试器中看到建议响应,但它没有显示在下拉框中。 我正在做以下工作

POM:


UTF-8
UTF-8
4.3.3.最终版本
org.openfaces
http://repository.openfaces.org/repository
jfree
http://www.ibiblio.org/maven/jfree/
org.richfaces
richfaces bom表
${org.richfaces.version}
进口
聚甲醛
org.richfaces.ui
richfaces组件用户界面
${org.richfaces.version}
org.richfaces.core
richfaces core impl
${org.richfaces.version}
豆子:

    @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;
    }
   }
@ManagedBean
@请求范围
公共类TagCollector实现可序列化{
私有静态最终长serialVersionUID=4930140495481611695L;
字符串标记名;
公共转换器gettagnamecoverter(){
返回新转换器(){
@凌驾
公共字符串getAsString(FacesContext上下文、UIComponent转换器、对象值){
System.out.println(“getAsString=”+(字符串)值);
返回(字符串)值;
}
@凌驾
公共对象getAsObject(FacesContext上下文、UIComponent转换器、字符串值){
System.out.println(“getAsObject=“+value”);
返回值;
}
};
}
公共列表getSuggestedTags(){
String searchString=Faces.var(“searchString”,String.class);
System.out.println(“getSuggestedTags searchString=“+searchString”);
List suggestedTags=Arrays.asList(新字符串[]{“ford”、“mazda”、“fiat”});
返回建议的标签;
}
公共字符串getTagName(){
返回标记名;
}
公共void setTagName(字符串标记名){
this.tagName=标记名;
}
}
xhtml:

    <h:form>
        <h:outputText value="Enter state" />
        <rich:autocomplete mode="ajax" minChars="1" showButton="true"
            autocompleteMethod="#{userBean.autocomplete}">
</rich:autocomplete>
    </h:form>

        
        
    
faces配置:

<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>

标签收集器
org.taagad.tag.model.TagCollector
要求

我真的在网上搜索了几个小时,结果一无所获,任何想法都会有帮助。

我解决了这个问题!它正在JSF2.1.25上工作。 RichFaces也存在同样的问题,这两个实现似乎对jsf iml和api的相同问题/错误都很敏感。 这就是我项目的pom:

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1.25</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.25</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>javax.portlet</groupId>
        <artifactId>portlet-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>

com.sun.faces
JSFAPI
2.1.25
com.sun.faces
jsf impl
2.1.25
javax.servlet
jstl
1.2
javax.servlet
javax.servlet-api
3.0.1
javax.portlet
portlet api
2
假如

如果您可以在代码中看到包含建议的
,但在页面上看不到,那么问题出在CSS或JavaScript中。自动完成方法做什么?没有css,因为我在这个测试中使用默认样式,所以它不可能是css问题。autocomplete只返回用户可以设置为标签的汽车制造商列表。问题是客户端的确定性,因为我确实看到了在线数据。解决方案是使用JSF2.1.25,您以前使用过什么?RF4与JSF1不兼容。
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1.25</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.25</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>javax.portlet</groupId>
        <artifactId>portlet-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>