我正在启动一个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
我正在使用此网址访问该文件:http://localhost:8080/DeutschAkademie/login.jsp
和
据我所知,<h:form>
标记应呈现为<form>
,而是呈现为<h:form>
。有什么想法吗?
答案 0 :(得分:9)
两个建议:
更新Faces Servlet的URL模式。默认配置可以是*.jsp
(无需使用*.faces
或其他内容。不过,我建议使用*.xhtml
。
JSF 2适用于Facelets,因此您不再需要使用旧的JSP。通过阅读您的login.jsp页面内容,您可以将扩展名从jsp重命名为xhtml,它将起作用。
基于这些, web.xml 将如下所示:
<web-app>
<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>
<welcome-file-list>
<welcome-file>login.xhtml</welcome-file>
</welcome-file-list>
</web-app>
拥有login.xhtml
档案。
要访问您的网页,您只需在浏览器地址栏中填写http://localhost:8080/DeutschAkademie/login.xhtml
。
相关:
编辑:
根据项目图片, WEB-INF / lib 文件夹是干净的。你应该删除那里的JSF 2库。添加它们,重新编译项目并再次尝试。
答案 1 :(得分:2)
创建项目时,将为您生成web.xml
,默认情况下,此文件中的servlet-mapping
将如下所示:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
您希望将所有.xhtml
个文件放在名为faces
的文件夹下
因此,您可以在faces
下创建名为WebContent
的此文件夹,并将.xhtml
文件放在那里,然后调用您的应用
。http://localhost:8080/DeutschAkademie/faces/login.xhtml
或者您可以编辑http://localhost:8080/DeutschAkademie/faces/login.xhtml
并将servlet-ammping更改为
web.xml
并致电您的申请 <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
。
上面也提到过这些解决方案。
答案 2 :(得分:0)
将您的web.xml修改为
<web-app>
<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>*.faces</url-pattern>
<url-pattern>/faces/</url-pattern>
</servlet-mapping>
</web-app>
将您的文件重命名为login.xhtml
在http://localhost:8080/DeutschAkademie/faces/login.xhtml
答案 3 :(得分:0)
添加<url-pattern>*.xhtml</url-pattern>
后,请确保您的文件扩展名为.xhtml,否则将无效。