我正在编写一个应用程序(不是网站),其中北面板保持不变,菜单的西面板和中心面板。西面板和中心面板可以改变。
在概念方面,最好是在单个视图和切换面板上工作,还是应该创建多个页面?
例如: 解决方案1:中心面板显示汽车图像,我在西面板上选择一个汽车品牌,因此我将西面板与另一个菜单(品牌的车型)切换,并切换中心面板上的品牌徽标图像
解决方案2:中心面板显示汽车图像,我在西面板上选择一个汽车品牌,因此我重定向到另一个页面,左侧菜单上的品牌汽车型号和中心面板上的图像品牌标志。
谢谢。
答案 0 :(得分:0)
我建议您使用解决方案2并应用JSF Templating。通过应用此方法,您的页面易于扩展和重用。
这是我使用p:layout
,ui:composition
等
layout.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Layout-menu</title>
</h:head>
<h:body>
<p:layout>
<p:layoutUnit position="west"
resizable="true"
size="250"
minSize="40"
maxSize="400">
<h:form>
<p:menu>
<p:submenu label="Navigations">
<p:menuitem value="input"
outcome="inputText"
icon="ui-icon-star"/>
<p:menuitem value="dropdown"
outcome="selectOneMenu"
icon="ui-icon-star"/>
</p:submenu>
</p:menu>
</h:form>
</p:layoutUnit>
<p:layoutUnit position="center">
<ui:insert name="source" />
</p:layoutUnit>
</p:layout>
</h:body>
</html>
inputText.xhtml
<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:p="http://primefaces.org/ui"
template="layout.xhtml">
<ui:define name="source">
<h:form>
inputText
</h:form>
</ui:define>
</ui:composition>
selectOneMenu.xhtml
<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:p="http://primefaces.org/ui"
template="layout.xhtml">
<ui:define name="source">
<h:form>
selectOneMenu
</h:form>
</ui:define>
</ui:composition>
您可以在layout.xhtml页面上运行test,如http://host:port/project/layout.xhtml
您可以从其他网站(例如JSF 2 Templating With Facelets Example,Using Facelets Templates等)查看有关模板化的详细信息。