为什么我的菜单在RichFaces 4.3.4中不起作用?

时间:2014-01-20 10:52:48

标签: jsf jsf-2 richfaces

我是jsf和富有面孔的新人。我正在关注现场演示并尝试创建一个简单的菜单。但它不起作用。我正在使用jboss7.1和jsf 2.1和ric 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目录中的jar

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

我不知道我在这里缺少什么..任何帮助都会有所帮助.. 我的输出 enter image description here

1 个答案:

答案 0 :(得分:1)

您需要摆脱页面上的<ui:composition>

根据定义,JSF运行时将忽略在<ui:composition>标记之外声明的所有内容。这包括您在那里的<h:head><h:body>标记。产生的问题是,<h:head/>标记是JSF能够包含正确呈现组件所需的javascript包的必要条件。这是您遇到的问题。

看到你实际上没有使用<ui:composition/>的模板能力,你可以安全地删除它以获得结果。

相关: