`

在richafaces中搭建layout的布局框架

阅读更多

      一直以来,都想做一个layout的布局框架,虽然richface本身提供了layout的组件框架,但应用还是很多人不太清楚,下面不采用layout组件做一个layout的组件,使得用户在点击左边导航栏时,右边的主体框架相应的页面发生变化,实现典型的iframe的方式。

1、首先看一下整体布局,其整体布局效果如图所示:



  
 要实现这样的框架,首先要熟悉facelet的布局方式,header 、footer、sidbar方式方式

1、看一下main.xhtml中的布局

<?xml version="1.0" encoding="UTF-8"?>
<rich:page 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:rich="http://richfaces.org/rich"
	xmlns:a4j="http://richfaces.org/a4j" markupposition="xhtml"
	contentposition="text/html" theme="#{pageBean.theme}"
	width="#{pageBean.width}" sidebarWidth="#{pageBean.sidebarWidth}"
	sidebarPosition="#{pageBean.position}" headerClass="p_header"
	footerClass="p_footer" bodyClass="p_body" sidebarClass="p_sidebar"
	pageTitle="报表服务平台">
	<f:facet name="header">
		<ui:include src="/pages/frameWork/includes/header.xhtml" />
	</f:facet>
	<f:facet name="sidebar">
		<ui:include src="/pages/frameWork/includes/navigator.xhtml" />
	</f:facet>
	<a4j:outputPanel id="content">
		<!--<ui:include src="/pages/frameWork/includes/bar.xhtml" />-->
		<ui:include src="#{controller.url}">
			<!--传递模板名称和路径参数,只对activex控件起作用  -->
			<ui:param name="palatename" value="#{controller.platename}" />
		</ui:include>
	</a4j:outputPanel>
	<f:facet name="footer">
		<ui:include src="/pages/frameWork/includes/footer.xhtml" />
	</f:facet>
</rich:page>

 2、左边导航栏的布局

<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:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich">
<ui:composition>
	<h:form>
		<div class="dyleft">
		<f:facet name="header">
			<h:outputText value="导航栏" />
		</f:facet> <rich:tree id="treeXML" value="#{navigationTreeBean.data}"
			var="vardata" nodeFace="#{vardata.attributes['type']}"
			ajaxSingle="true">
			<rich:treeNode icon="#{vardata.attributes['icon']}"
				iconLeaf="#{vardata.attributes['leafIcon']}" type="parent">
				<h:outputText value="#{vardata.attributes['label']}" />
			</rich:treeNode>
			<rich:treeNode icon="#{vardata.attributes['icon']}"
				iconLeaf="#{vardata.attributes['leafIcon']}" type="link">
				<h:outputLink style="display:block;height:20px"
					value="#{vardata.attributes['dir']}/#{vardata.attributes['filename']}"
					target="_blank">
					<h:outputText value="#{vardata.attributes['name']}" />
				</h:outputLink>
			</rich:treeNode>

			<rich:treeNode icon="#{vardata.attributes['icon']}"
				iconLeaf="#{vardata.attributes['leafIcon']}" type="page">
				<a4j:commandLink value="#{vardata.attributes['name']}"
					reRender="content" actionListener="#{controller.reloadUrl}">
					<f:param name="url"
						value="#{vardata.attributes['dir']}/#{vardata.attributes['filename']}" />
				</a4j:commandLink>
				<!--h:outputLink 
						style="display:block;height:20px"
						value="#{facesContext.externalContext.requestContextPath}#{vardata.attributes['dir']}/#{vardata.attributes['filename']}">
						<h:outputText value="#{vardata.attributes['name']}" style="display:block;padding-top:3px;text-decoration : none; color : #000000;" />
					</h:outputLink -->
			</rich:treeNode>

			<rich:treeNode icon="#{vardata.attributes['icon']}"
				iconLeaf="#{vardata.attributes['leafIcon']}" type="modalPanel">
				<h:outputLink value="#"
					onclick="#{rich:component('pageconfig')}.show()"
					reRender="pageInfo">
					<h:outputText value="#{vardata.attributes['name']}" />
				</h:outputLink>
			</rich:treeNode>
			<!-- 报表展示使用 -->
			<rich:treeNode icon="#{vardata.attributes['icon']}"
				iconLeaf="#{vardata.attributes['leafIcon']}" type="reportView">
				<a4j:commandLink value="#{vardata.attributes['name']}"
					reRender="content" actionListener="#{controller.reloadUrl}">
					<f:param name="url"
						value="#{vardata.attributes['dir']}/#{vardata.attributes['filename']}" />
					<f:param name="templatename" value="#{vardata.attributes['path']}" />
				</a4j:commandLink>
			</rich:treeNode>
		</rich:tree></div>
	</h:form>
</ui:composition>
</html>

 其基本思想是左边导航栏点击时,url地址发生变化,同时刷新右边的outpanel,其中,url对应的bean的范围是Session。

 

 

  • 大小: 54.3 KB
分享到:
评论
1 楼 zhousemi 2012-08-04  
楼主密码是什么

相关推荐

    微信小程序 FlexLayout布局 (源码)

    微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小程序 FlexLayout布局 (源码)微信小...

    jquery layout 经典布局(东南西北中)

    jQuery Layout 是一个强大的基于jQuery的布局框架,它为开发者提供了灵活且可定制化的布局解决方案。这个框架的核心在于一个能够自适应大小的中心面板,而面板的四周可以设置可折叠、可缩放的侧边栏,实现“东南西北...

    小程序源码 FlexLayout布局 (代码+截图)

    小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 FlexLayout布局 (代码+截图)小程序源码 Flex...

    微信小程序的FlexLayout布局实例.rar

    本源代码将研究学习微信小程序的FlexLayout布局实例,微信小程序界面设计实例,是一种流布局的实现例子,而不是大家熟悉的盒子式布局,据说即使需要深层的嵌套,FlexLayout布局的响应速度也不会超过1ms,可谓是非常...

    微信小程序 - FlexLayout布局源码.zip

    微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip ...

    微信小程序源码 FlexLayout布局(学习版)

    微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 FlexLayout布局(学习版)微信小程序源码 ...

    微信小程序——FlexLayout布局(截图+源码).zip

    微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——FlexLayout布局(截图+源码).zip 微信小程序——...

    Android 五种Layout 布局

    在Android开发中,布局(Layout)是构建用户界面的基础元素,它定义了屏幕上各个组件的排列方式和相互关系。本文将深入探讨Android的五种主要布局:LinearLayout、RelativeLayout、FrameLayout、GridLayout以及...

    v3layout布局软件

    在V3Layout中,MFC被用作应用程序的基础框架,它提供了窗口管理、事件处理、资源管理等一系列功能,简化了软件开发过程。开发者可以借助MFC快速构建用户界面,并与GDI紧密结合,实现高性能的图形绘制。 C++作为V3...

    java layout基本布局

    在Android应用开发中,界面设计是至关重要的,而布局(Layout)则是构建用户界面的核心工具。Java Layout基本布局主要指的是Android SDK中提供的几种布局管理器,它们负责在屏幕上组织和定位视图(View)和视图组...

    jquery.layout 布局插件精简版

    8. **触发动画**:在布局变化时,可以启用平滑的动画效果,提供更好的用户体验。 9. **兼容性**:此插件通常与现代浏览器兼容,包括Chrome、Firefox、Safari、Edge和IE9及以上版本。需要注意的是,由于精简版去除了...

    Android自定义Layout布局

    本篇文章将深入探讨如何在Android中进行自定义Layout布局的开发。 首先,创建自定义Layout首先要创建一个新的Java类,继承自`ViewGroup`或`LinearLayout`等现有布局。选择`ViewGroup`是因为它是所有布局的基础类,...

    Layout控件(线性布局,框架布局,表格布局,相对布局,约束布局)

    在Android开发中,布局(Layout)是构建用户界面的核心组件,它们决定了屏幕上元素的排列方式和相互关系。本文将深入探讨五种主要的布局控件:线性布局(LinearLayout)、框架布局(FrameLayout)、表格布局...

    Zend Framework教程之Zend_Layout布局助手详解

    在布局文件layout.phtml中,还可能包含CSS和JavaScript代码,用于定义页面的样式和行为。比如,可以使用内联样式(style标签内的CSS规则)直接定义页面元素的样式。通常,我们会通过CSS选择器定义头部、尾部、导航栏...

    div页面框架布局

    在网页设计中,"div页面框架布局"是一个关键的概念,它涉及到如何有效地组织网页内容,以便在各种浏览器中实现良好的显示效果。EasyUI是一个基于jQuery的用户界面库,提供了丰富的组件和布局方案,使得开发者能够...

    jquery ui layout 后台框架(可切换ui主题)

    在jQuery UI Layout框架中,jQuery扮演着基础支持的角色,负责页面元素的交互和控制。 **jQuery UI** 是jQuery的一个扩展,提供了一系列用户界面组件,如对话框、滑块、进度条、日期选择器等。它还包括一套完整的...

    jquery ui layout 后台框架.zip

    在实际项目中,使用jQuery UI Layout 开发后台框架,开发者需要考虑以下几点: 1. 结构规划:明确每个区域的功能和内容,合理划分布局。上部通常用于导航,中部左右用于展示主要内容,下部可以作为状态栏或信息提示...

    JQueryEasyUI Layout布局框架的使用

    在JQueryEasyUI的Layout布局中,页面被划分为多个区域,这些区域可以独立地展示内容,用户可以通过拖动分隔条来调整布局的尺寸,以此达到个性化的需求。 使用JQueryEasyUI Layout布局框架前,需要先引入JQuery库和...

    安卓界面布局工具(layout布局)

    在Android开发中,界面布局是应用用户体验的关键因素。`Layout`布局工具的使用极大地提高了开发者设计和构建用户界面的效率,使得复杂的界面设计变得更为直观和便捷。标题中提到的"安卓界面布局工具(layout布局)...

    ExtJs4 layout 布局

    ExtJs4 layout 布局 这是鄙人之前自学Ext时收集的文档,详细讲诉了各种布局,并附源码与界面展示,希望能给你带来帮助

Global site tag (gtag.js) - Google Analytics