2012-01-14 98 views
0

我在Tomcat中使用JSF 2和RichFaces。我是一个初学者,并尝试了一个页面,我发现here,但该页面只是空白(内容不呈现)。我尝试添加Facelets 1.1库,并且页面呈现没有问题。不过,我在某处阅读了JSF 2,Facelets库并不是必需的,因为它们默认包含在内。此外,当我添加Facelets库时,其他页面正受到影响,我开始收到一条消息,如 “库支持名称空间:http://java.sun.com/jsf/html,但没有为名称定义标签:头”“没有图书馆。 我还包括以下库在我的/ WEB-INF/lib目录:Facelets:页面未呈现

  1. RichFaces的-API 3.3.3.Final.jar
  2. RichFaces的 - implement执行,3.3.3.Final.jar
  3. RichFaces的-IMPL-jsf2-3.3.3.Final.jar
  4. RichFaces的-UI-3.3.3.Final.jar
  5. 的jstl.jar
  6. standard.jar

为了简单起见,我的代码在这里(删除了一些部分,以便它不会太长)。

注意:当我在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> 

回答

0

你加JSF 2.0库?

<dependency> 
    <groupId>javax.faces</groupId> 
    <artifactId>javax.faces-api</artifactId> 
    <version>2.1</version> 
    <scope>provided</scope> 

并配置了网络这样的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> 

+0

嗨,jsf-api.jar和jsf-impl.jar与Java EE 6库一起添加都是从他们的MANIFEST.MF文件的Implementation-Version:2.0.3-FCS。 web.xml具有上述配置。但我不确定在哪里添加依赖关系? – gkinu 2012-01-15 21:05:32

+0

还有什么想法? – gkinu 2012-01-16 11:08:35

+0

你是否使用tomcat 6或7.你不需要做任何事情。它必须工作。你必须用mojarra库改变tomcat目录中的旧库 – 2012-01-22 16:58:49

0

库中存在库冲突,但我不确定它与您所指的问题有关。

你不应该在这两个项目中下列库:

  • RichFaces的 - implement执行,3.3.3.Final.jar
  • RichFaces的 - implement执行,jsf2-3.3.3.Final.jar

它们包括类似的一组类。如果您使用的是JSF 2,请从您的类路径中移除richfaces-impl-3.3.3.Final.jar。