我正在尝试使用tomcat7在eclipse中创建一个JSF 2.0应用程序。该项目正在成功运行,但jsf html和核心组件未在浏览器中呈现。我认为我已经在web.xml中配置了Faces Servlet。
以下是web.xml文件 -
<welcome-file-list>
<welcome-file>faces/index.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>
</servlet-mapping>
<context-param>
<description>State saving method: 'client' or 'server' (=default)</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
我在WEB-INF之外有我的index.xhtml页面。它在浏览器中显示但jsf组件在浏览器中看不到。任何人都可以告诉我出了什么问题。
我在WEB-INF / lib中包含了以下jar文件 - 1. commons-annotations.jar 2. commons-beansutil.jar 3. commons-collection.jar 4. commons-digester.jar 5. commons-logging.jar 6. jsf-api.jar(来自mojra 2.0) 7. jsf-impl.jar(来自mojra 2.0) 8. jstl.jar 9. standard.jar
由于
答案 0 :(得分:2)
尝试这些..这些是我自己的问题指定给我一次..
您也可以像这样修改web.xml并尝试:
<welcome-file-list>
<welcome-file>index.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>*.xhtml</url-pattern>
</servlet-mapping>
当我尝试时,我分别删除了添加jsf jar。它工作,显示所有的jsf标签。还要确保在xhtml页面中包含所有必需的taglib,即:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
看看是否有效。
答案 1 :(得分:0)
请将原始问题中显示的servlet映射更改为
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
使其工作,即通过JSF2呈现您的内容(已经由Tomcat愉快地提供)。
答案 2 :(得分:0)
我也有这个问题,因为这个问题是关于JSF没有解析xhtml文件的google查询的第一个结果,这就是我要解决的问题:
在我的情况下,我依赖于weld-servlet,版本2.2.1,当我从类路径中删除它时,JSF开始渲染。
希望这有帮助!