我想使用primeface <p:layout>
来创建两个<p:layoutUnit>
。用于菜单的西<p:layoutUnit>
和用于点击菜单上的项目的中心<p:layoutUnit>
。
由于<p:menu>
必须包含在<h:form>
中,因此我的内容位于中心,因为我需要使用表格来显示数据。所以我的xhtml页面如下所示:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.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:p="http://primefaces.org/ui">
<f:view contentType="text/html">
<h:head>
<f:facet name="first">
<meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
<title>PrimeFaces</title>
</f:facet>
</h:head>
<h:body>
<p:layout fullPage="true">
<p:layoutUnit position="west" size="175" header="Left" collapsible="true">
<p:menu>
<p:submenu label="testUpdate">
<p:menuitem value="open" id="open" actionListener="#{backingBean.open()}" update=":center_form"/>
<p:menuitem value="close" id="close" actionListener="#{backingBean.close()}" update=":center_form"/>
</p:submenu>
</p:menu>
</p:layoutUnit>
<p:layoutUnit position="center">
<p:panel id="center_panel" rendered="#{backingBean.render}">
<h:form id="center_form">
testing
</h:form>
</p:panel>
</p:layoutUnit>
</p:layout>
</h:body>
</f:view>
</html>
和我的web.xml:
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</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>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
问题是当我点击“打开”和“关闭”时,ajax似乎无法正常工作,我必须通过手动重新加载页面来更新我的连接以让页面更新。
我可以知道是否可以这样做? 如果是这样,我的代码中有什么问题? 或者当我点击菜单上的项目时,我该怎么办才能让中心layoutUnit自动更新?
答案 0 :(得分:0)
将此添加到您的web.xml:
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
尝试update="@all"