我在Tomcat中使用JSF 2和RichFaces。我是一个初学者,并且尝试了一个我找到的这里页面,但是这个页面只是空白的(没有呈现的内容)。我尝试添加Facelets 1.1库,然后页面就会呈现,而不会出现问题。但是,我在某个地方读到,在JSF 2中,Facelets库是不必要的,因为它们是默认包含的。此外,当我添加Facelets库时,其他页面也会受到影响,因为我开始收到类似于的消息:“库支持名称空间: http://java.sun.com/jsf/html,但是没有为没有库的页面定义名称: head"。我还在我的/WEB/lib目录中包含了以下库:
为了简单起见,我的代码就在这里(有些部分被删除了,这样就不会太长了)。
注意:当我在h:form或h:panelGrid中插入一些纯文本时,就会没有问题地呈现它。
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<style>
.cols {
vertical-align: top;
}
</style>
<h:form id="form">
<h:panelGrid columns="2" columnClasses="cols,cols" width="400">
<rich:panelMenu style="width:200px" mode="ajax"
iconExpandedGroup="disc" iconCollapsedGroup="disc"
iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right"
iconCollapsedTopGroup="chevronDown">
<rich:panelMenuGroup label="Group 1">
<rich:panelMenuItem label="Item 1.1"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 1.1" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 1.2"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 1.2" />
</rich:panelMenuItem>
<rich:panelMenuItem label="Item 1.3"
action="#{panelMenu.updateCurrent}">
<f:param name="current" value="Item 1.3" />
</rich:panelMenuItem>
</rich:panelMenuGroup>
</rich:panelMenu>
<rich:panel bodyClass="rich-laguna-panel-no-header">
<a4j:outputPanel ajaxRendered="true">
<h:outputText value="#{panelMenu.current} selected" id="current" />
</a4j:outputPanel>
</rich:panel>
</h:panelGrid>
</h:form>
发布于 2012-01-15 04:51:19
您添加了jsf 2.0库吗?
<dependency>
<groupId>javax.faces</groupId>
<artifactId>javax.faces-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
并配置成这样的web xml?
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/*</url-pattern>
发布于 2012-07-10 11:08:44
库中存在库冲突,但我不确定它是否与您所指的问题有关。
在您的项目中不应该同时拥有以下两个库:
它们包括类似的一组类。如果使用JSF 2,请从类路径中删除richfaces-impl-3.3.3.Final.jar。
https://stackoverflow.com/questions/8865822
复制相似问题