我试图在Eclipse中使用glassfish开始使用JSF 2.2。
这就是我的所作所为:
未选择原型的新maven项目(跳过原型选择),我将war作为包装配置maven项目
我将编译器级别更改为1.7
在项目方面,我选择JavaServerFaces 2.2 Project,选择glassfish作为运行时,将Java更改为1.7,将Dynamic Web Module更改为3.1
我添加了以下依赖项:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.2.8</version>
</dependency>
我在webapp文件夹中创建了一个index.xhtml文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:head/>
<h:body>
TEST
</h:body>
</html>
我在glassfish服务器上运行index.xhtml并转到http://localhost:8080/JavaServerFaces/index.xhtml
并参见TEST。
我在src/main/java
文件夹中创建了一个JavaBean:
import javax.inject.Named;
@Named
public class TestBean {
private String name;
public TestBean() {
name = "TESTNAME";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我在index.xhtml中访问该bean
<h:body>
TEST
Welcome #{testbean.name}
</h:body>
我在服务器上运行它并获得以下输出:
TEST Welcome#{testbean.name}
我没有收到任何错误。
我错过了哪些错误或配置错误?我没有更改web.xml
或faces-config.xml
中的任何内容,因为我认为他们是可选的。
Thanx给了我很多帮助和提示!
答案 0 :(得分:1)
在您的web.xml
中,您必须按如下方式配置javax.faces.webapp.FacesServlet
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
访问http://localhost:8080/JavaServerFaces/index.xhtml
它应该有效。