Jsf 2 打开JSF2 Facelets页面会在JSP文件上显示404
我创建了一个新项目作为本教程 当我右键单击Jsf 2 打开JSF2 Facelets页面会在JSP文件上显示404,jsf-2,facelets,Jsf 2,Facelets,我创建了一个新项目作为本教程 当我右键单击m.xhtml并选择RunonServer来运行它时,我在m.jsp上遇到了404错误 浏览器地址栏中的URL为:http://localhost:8080/Marwa/m.jsf 错误消息说 这是如何造成的,我如何解决 这是我的web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst
m.xhtml
并选择RunonServer来运行它时,我在m.jsp
上遇到了404错误
浏览器地址栏中的URL为:http://localhost:8080/Marwa/m.jsf
错误消息说
这是如何造成的,我如何解决
这是我的web.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Marwa</display-name>
<welcome-file-list>
<welcome-file>m.xhtml</welcome-file>
</welcome-file-list>
<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>*.jsf</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
</context-param>
</web-app>
马尔瓦
m、 xhtml
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
/面孔/*
*.jsf
javax.servlet.jsp.jstl.fmt.localizationContext
资源.应用
javax.faces.STATE_保存方法
客户
org.apache.myfaces.ALLOW_JAVASCRIPT
真的
org.apache.myfaces.PRETTY_HTML
真的
org.apache.myfaces.DETECT\u JAVASCRIPT
假的
org.apache.myfaces.AUTO_滚动
真的
它正在寻找一个JSP文件而不是Facelets文件
JSP是旧JSF1.x中的默认视图技术。因此,这个问题表明您实际上正在使用JSF1.x,或者正在JSF1.xModus中运行JSF2.x
确保您已经真正了解了JSF2.x库。您可以通过读取服务器启动日志或使用zip工具提取JSFJAR文件并读取清单文件来检查JSF的确切版本。您也可以在重新下载正确的版本(或用于其他实现)。确保您获得了2.x版本
还要确保faces config.xml
声明符合JSF 2.x规范版本。应该是这样的:
<?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">
<!-- Config here -->
</faces-config>
如果您的Eclipse没有自动完成这一切,那么显然您使用的是过时的Eclipse版本。EclipseHelios(3.6)首次为JavaEE引入了内置JSF2支持。你可以得到最新的版本,目前是Indigo SR2(3.7.2)。那么,还是有问题。服务器日志中打印的MyFaces版本是什么?服务器日志中有任何警告吗?当你在一个真正的网络浏览器中打开页面的时候呢?使用
/faces
URL?当我使用这个URL localhost:8080/Marwa/faces/m.xhtml时,我的war文件只显示文本apear和任何jsf组件,而服务器日志不显示您正在使用Mojarra 1.2_13。你需要2.x。升级库。你明白答案了吗?好的,巴卢斯克,我明白你说的话,我使用myfaces-core-assembly-2.1.7-bin.zip,eclips helios 3.6和tomcat 6,但它仍然告诉我“Mojarra 1.2_13”,但当我添加jsf-facelets.jar文件时,它是工作的,但它无法理解