【问题标题】:RichFaces 4 autocomplete is not showing suggestionsRichFaces 4 自动完成未显示建议
【发布时间】: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>

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

【问题讨论】:

  • 如果您可以在代码中看到 &lt;div&gt; 包含建议但在页面上看不到,那么问题出在 CSS 或 JavaScript 上。自动完成方法有什么作用?
  • 没有css,因为我在这个测试中使用默认样式,所以它不可能是css问题。自动完成只返回用户可以设置为标签的汽车制造商列表。问题在客户端是确定性的,因为我确实看到了网络上的数据。
  • 解决方案是使用 JSF 2.1.25
  • 你以前用过什么? RF4 与 JSF 1 不兼容。

标签: jsf-2 richfaces client-side facelets


【解决方案1】:

我解决了这个问题!它正在使用 jsf 2.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>

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 2020-12-09
    • 2015-04-10
    • 2018-04-27
    • 2012-11-15
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多