2014-01-20 52 views
0

我是新的jsf和丰富的面孔。我在那里现场演示,并尝试创建一个简单的菜单。但它不起作用。我使用jboss7.1和JSF 2.1 RIC 4.3.4为什么我的菜单在RichFaces 4.3.4中不起作用?

menu.xmhtl

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:rich="http://richfaces.org/rich"> 
<h:head></h:head> 
<h:body> 
    <ui:composition> 
     <h:form> 
      <rich:toolbar height="26px"> 
       <rich:dropDownMenu mode="ajax"> 
        <f:facet name="label"> 
         <h:panelGroup> 
          <h:outputText value="File" /> 
         </h:panelGroup> 
        </f:facet> 
        <rich:menuItem label="hello" action="hello" /> 
        <rich:menuSeparator id="menuSeparator11" /> 
        <rich:menuItem label="Open" action="AddStudent" /> 
       </rich:dropDownMenu> 

       <rich:dropDownMenu mode="ajax"> 
        <f:facet name="label"> 
         <h:panelGroup> 
          <h:outputText value="File" /> 
         </h:panelGroup> 
        </f:facet> 
        <rich:menuItem label="hello" action="hello" /> 
        <rich:menuItem label="Open" action="AddStudent" /> 
       </rich:dropDownMenu> 
      </rich:toolbar> 
     </h:form> 

    </ui:composition> 
</h:body> 
</html> 

的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_3_0.xsd" 
    id="WebApp_ID" version="3.0"> 

    <display-name>helloRich</display-name> 
    <welcome-file-list> 
     <welcome-file>hello.xhtml</welcome-file> 
    </welcome-file-list> 

    <context-param> 
     <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description> 
     <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
     <param-value>client</param-value> 
    </context-param> 

    <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> 

    <listener> 
     <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
    </listener> 
</web-app> 

,这些都是我的lib目录罐子

cssparser-0.9.5.jar 
guava-r08.jar 
jstl-1.2.jar   
richfaces-components-api-4.3.4.Final.jar  
richfaces-components-ui-4.3.4.Final.jar  
richfaces-core-api-4.3.4.Final.jar   
richfaces-core-impl-4.3.4.Final.jar 
sac-1.3.jar 

我不知道w帽子我是缺少在这里..任何帮助将是有益的.. 我的输出 enter image description here

+0

你错过了''和''标签。如果你添加它们会发生什么?猜猜:你没有加载RF JavaScript文件? – mabi

+0

没有m没有使用任何JavaScript ..只是一个简单的菜单.. –

+0

Richfaces广泛使用JavaScript,检查您的网页是否加载“packed.js”和“jsf.js”。即使*你*不加载任何(自定义)JavaScript,这些文件都需要存在才能工作。 – mabi

回答

1

你需要让你的页面上摆脱<ui:composition>的。

根据定义,在JSF运行时会忽略所有声明在<ui:composition>之外的标签。这包括您在那里的<h:head><h:body>标签。造成的问题是,<h:head/>标记对于JSF能够包含正确呈现组件所需的JavaScript行李是必需的。这是你遇到的问题。

鉴于您实际上没有使用<ui:composition/>的模板功能,您可以安全地将其移除以获取结果。

相关:

相关问题