使用eclipseEE和maven设置JSF项目

时间:2014-11-26 09:57:43

标签: eclipse maven jsf-2 glassfish

我试图在Eclipse中使用glassfish开始使用JSF 2.2。

这就是我的所作所为:

  1. 未选择原型的新maven项目(跳过原型选择),我将war作为包装配置maven项目

  2. 我将编译器级别更改为1.7

  3. 在项目方面,我选择JavaServerFaces 2.2 Project,选择glassfish作为运行时,将Java更改为1.7,将Dynamic Web Module更改为3.1

  4. 我添加了以下依赖项:

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.2.8</version>
    </dependency>
    
  5. 我在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>
    
  6. 我在glassfish服务器上运行index.xhtml并转到http://localhost:8080/JavaServerFaces/index.xhtml 并参见TEST。

  7. 我在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;
      }
    }
    
  8. 我在index.xhtml中访问该bean

    <h:body>
         TEST 
         Welcome #{testbean.name}
    </h:body>
    
  9. 我在服务器上运行它并获得以下输出:

  10. TEST Welcome#{testbean.name}

    我没有收到任何错误。

    我错过了哪些错误或配置错误?我没有更改web.xmlfaces-config.xml中的任何内容,因为我认为他们是可选的。

    Thanx给了我很多帮助和提示!

1 个答案:

答案 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它应该有效。