我正在尝试构建基于JSF 2的自动填充表单示例。我使用的是primefaces 3.0.M2,JSF 2.1.2库和JBoss 6。
我正在使用primefaces的autoComplete组件,但它不起作用。当我输入输入文本框时,我没有收到任何自动填充文本。
我只能在JBoss控制台窗口中看到以下警告:
19:40:56,874 WARN [Parameters] Parameters: Invalid chunk ignored.
我的xhtml文件如下所示:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<title>sample auto completer</title>
</h:head>
<h:body>
<p:messages id="messages" />
<p:autoComplete id="AutoCompleter"
value="#{myBean.text}"
completeMethod="#{myBean.complete}"
onSelectUpdate="messages"/>
</h:body>
</html>
和java bean代码如下:
package com.shekhar.jsf;
import java.util.ArrayList;
import java.util.List;
public class Bean {
private String text;
public List<String> complete(String val) {
List<String> lst = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
lst.add(val + i);
}
return lst;
}
public void setText(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
我的faces-config文件包含以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>com.shekhar.jsf.Bean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
我不明白我错过了什么。请帮忙!!!
答案 0 :(得分:3)
从上面的评论作为接受的答案
您应该在控制台或System.out.println()的日志文件中看到输出。如果你没有那么这意味着完整的方法没有被执行。这可能是因为您需要将自动完成和消息组件包装在
中<h:form prependId="false">
。
很高兴看到它对你有用。这可能看起来很奇怪,但JSF和ASP.NET之间有很多相似之处。我曾经是一名ASP.NET开发人员,而且我很容易选择JSF。祝你好运!