JSF标记未呈现

我正在启动一个JSF项目(这是我第一次使用JSF)而且我在渲染标记方面遇到了问题。 我正在Eclipse中开发并使用TomCat作为服务器。

  • 我的login.jsp文件: https : //gist.github.com/code-curve/e7e557262d407dddd1f3

  • 我的web.xml文件: https : //gist.github.com/code-curve/52902b7605b780dea93f

  • Eclipse项目结构: http : //snag.gy/P8Sts.jpg

  • 服务器启动日志: https : //gist.github.com/code-curve/d1927a636052607ce16a

我正在使用此URL访问该文件: http://localhost:8080/DeutschAkademie/login.jsp ,据我所知, 标记应呈现为

,而是呈现为 。 有任何想法吗?

两个建议:

  1. 更新Faces Servlet的URL模式。 默认配置可以是*.jsp (不需要使用*.faces或其他。仍然,我建议使用*.xhtml

  2. JSF 2适用于Facelets,因此您不再需要使用旧的JSP。 通过阅读您的login.jsp页面内容,您可以将扩展名从jsp重命名为xhtml,它将起作用。

基于这些, web.xml将如下所示:

   Faces Servlet javax.faces.webapp.FacesServlet 1   Faces Servlet *.xhtml   login.xhtml   

并有login.xhtml文件。

要访问您的页面,您只需在浏览器地址栏中写入http://localhost:8080/DeutschAkademie/login.xhtml

有关:

  • 为什么我的jsf标签不起作用?

编辑:

根据项目的图片, WEB-INF / lib文件夹是干净的。 你应该删除那里的JSF 2库。 添加它们,重新编译您的项目并再次尝试。

在创建项目时,将为您生成web.xml ,默认情况下,此文件中的servlet-mapping将如下所示:

   Faces Servlet /faces/*  

它希望您将所有.xhtml文件放在名为faces的文件夹下。
因此,您可以在WebContent下创建名为faces文件夹,并将.xhtml文件放在那里,然后调用您的应用程序http://localhost:8080/DeutschAkademie/faces/login.xhtml
或者,您可以编辑web.xml并将servlet-ammping更改为

   Faces Servlet *.xhtml  

然后调用你的应用程序http://localhost:8080/DeutschAkademie/login.xhtml
上面也提到过这些解决方案。

将您的web.xml修改为

   Faces Servlet javax.faces.webapp.FacesServlet 1   Faces Servlet *.faces /faces/   

将您的文件重命名为login.xhtml

http://localhost:8080/DeutschAkademie/faces/login.xhtml打开您的文件

添加*.xhtml 。xhtml *.xhtml ,请确保您的文件扩展名为.xhtml,否则将无效。