当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

自定义标签

发表于: 2015-03-27   作者:dejish   来源:转载   浏览次数:
摘要: 扩展了Struts2的标签,所有自定义标签都用 <s:za- 开头     操作权限标签<s:za-authoperation 菜单默认有add,search,edit,delete四个操作 在jsp页面中,在添加按钮前加上<s:za-authoperation标签,如果用户没有该操作权限,标签里面的内容不显示 ,用法:
扩展了Struts2的标签,所有自定义标签都用 <s:za- 开头

    操作权限标签<s:za-authoperation
菜单默认有add,search,edit,delete四个操作  
在jsp页面中,在添加按钮前加上<s:za-authoperation标签,如果用户没有该操作权限,标签里面的内容不显示 ,用法:
 
<s:za-authoperation operation="add">  
    <li onclick=""><s:za-i18n field="add"/></li>  //如果当前用户没有添加权限,这行不显示
</s:za-authoperation>
系统中所有属于菜单某个需要授权的操作,都需要把操作按钮放在za-authoperation标签里


    国际化标签<s:za-i18n
在jsp中使用
<s:za-i18n field="add"/> //页面显示文本为添加  
<s:za-i18n field="delete"/> //页面显示文本为删除  

假如要显示jdo类中的某个属性的国际化值,如com.gzza.oa.jdo.dev.Student类中的name,name的Display配置如下:
@Column(name = "NAME")
@Display(query = true, zhValue = "名称", validate = Validate.NOT_NULL)
private String name;

使用类名+下划线+属性名:<s:za-i18n field="Student_name"/> //页面显示文本为名称


    表格显示<s:za-datatable
//最简单用法,会解析request中Page对象,生成最后一列带有删除、修改操作、第一列是全选的表格
<s:za-datatable/>

//如果不显示第一列的全选,加上checkbox="false"
//如果不显示最后一列的操作,加上operation="false"
//如果整个表格都不需要显示,加上hidden="true"
<s:za-datatable checkbox="false" operation="false" hidden="true"/>

//<s:za-datatable可以展开,展开后,可有如下功能
//1.自定义操作列中的按钮
//2.隐藏某些列
//3.重写某些列
//4.对某些列出简单图形报表

//<s:za-datatable是一个遍历数据生成table的组件,在遍历过程中,如果想要拿到当前遍历对象的属性值,如拿id,需要使用{@id},如拿object.name,使用{@object.name}
//遍历过程中,可使用{if}{/if}{if}{else}{/else}标签
<s:za-datatable>
	<!-- 
		报表说明
		name :报表标题,需要国际化,可以为空
		type :报表显示类型,bar:柱图  pie:饼图  line:线图,同一报表,出多种不同图
		key : <!-- 报表的说明字段 -->
		value : <!-- 报表的值字段 -->
	-->
	<bi>
		<name>studentInfo</name>
		<type>bar,pie</type>
		<key>name</key>
		<value>score</value>
	</bi>
	<bi>
		<name>studentInfo</name>
		<type>line</type>
		<key>name</key>
		<value>age</value>
	</bi>

        //重写指定列
	<reset age>
		{if {@age}>18}
			{if {@age}>60}
				<a href="http://www.baidu.com" style="color: blue;text-decoration: underline;" target="_blank"><b>(老年人){@age}<b></a>
			{/if}
			{else}
				<a href="http://www.baidu.com" target="_blank"><b>(年轻人){@age}<b></a>
			{/else}
		{/if}
		{else}
			{@age}
		{/else}
	</reset>

        //重写指定列
	<reset createTime>
		<img src="images/i07.png"/>
	</reset>

        //显示指定列
	<display>
		<s:if test="#request.type == 1">
			 name,age,score,clazz.name,enabled 
		</s:if>
		<s:else>
			 name,age,score,clazz.remark,createTime
		</s:else>
	</display>
        
        //自定义操作列中的按钮
	<operation>
		<s:za-authoperation operation="delete">
			<a href="javascript:void(0)" class="tablelink" onclick="defaultEditData('studentEdit.html?id={@id}', '<s:za-i18n field="edit"/>')"><s:za-i18n field="edit"/></a>
		</s:za-authoperation>
	</operation>
</s:za-datatable>


    批量修改标签<s:za-batchedit
//如果该用户有修改权限,那个出现批量修改按钮,用户可以多选表格数据进行批量修改
//za-batchedit中的clazz指定对那个类做批量修改
<s:za-authoperation operation="edit">
    <s:za-batchedit clazz="test.Student"/>
</s:za-authoperation>


    快速复制一条记录来添加标签<s:za-copyadd
//如果该用户有添加权限,那个出现复制添加按钮,用户可以表格一行数据,复制该行数据内容来快速添加
//za-copyadd 中的clazz指定对那个类做复制添加
<s:za-authoperation operation="add">
    <s:za-copyadd clazz="test.Student"/>
</s:za-authoperation>


    全局取值标签<s:za-globalattribute
//该标签用来取全局系统中保存的值,可跨项目,跨tomcat取值,如在平台项目中调用setGlobalAttribute("name", "admin"),可在另一个跑在同tomcat的oa项目中取得该值,使用tomcat做集群中也可以使用
<s:za-globalattribute key="name"/> //jsp中显示为admin


    判断是否管理员标签<s:za-isadmin
//该标签用来判断当前的登录用户是否系统管理员
<s:za-isadmin>
    //如果是系统管理员,才显示这里的内容
</s:za-isadmin>


    判断是否非管理员标签<s:za-notadmin
//该标签用来判断当前的登录用户是否非系统管理员
<s:za-notadmin>
    //如果是非系统管理员,才显示这里的内容
</s:za-notadmin>


    动态查询参数标签<s:za-queryparam
//该标签用来根据jdo实体类的Display注解动态解析生成查询条件显示
//这样就可以不需要改动jsp就可以修改查询条件
//默认用法
<s:za-queryparam clazz="test.Student"/> //clazz指定加载那个类的查询条件

如果还需要加上一些自定义的查询条件,可展标签,如
<s:za-queryparam clazz="test.Student">
    <input type="type" name="xxxxxx"> //自定义的查询条件
</s:za-queryparam>


    取用户保存的属性标签<s:za-userattribute
//当系统要做应用服务器集群时,我们不建议再使用session,该标签就用来替代session
在类中
在java中
1. setUserAttribute(key,value) 替代 session.setAttribute(key,value)
2. getUserAttribute(key) 替代简单对象 session.getAttribute(key)
3. getUserAttribute(key,clazz) 替代 (clazz)session.getAttribute(key)
4. removeUserAttribute(key) 替代 session.removeAttribute(key)
在jsp中
1. <s:za-userattribute key="name"/> 替代 <s:property value="#session.name">;
2. <s:za-userattribute key="object.name"/> 替代 <s:property value="#session.object.name">;

自定义标签

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
(一) 没有正文的JSP自定义标签实现 (1):定义JSP自定义标签处理类 import java.io.IOException; impo
原文地址:http://blog.csdn.net/jiangwei0910410003/article/details/23915373 今天来看一下自定义
最近弄了一个分页插件,顺便学习了下自定义标签、自定义函数、taglib的使用。 自定义标签 使用自定
最近弄了一个分页插件,顺便学习了下自定义标签、自定义函数、taglib的使用。 自定义标签 使用自定
今天来看一下自定义标签的内容,自定义标签是JavaWeb的一部分非常重要的核心功能,我们之前就说过,
今天来看一下自定义标签的内容,自定义标签是JavaWeb的一部分非常重要的核心功能,我们之前就说过,
一 . JSP标签体系 二 . 标签的执行流程: 三.自定义标签; 3.1 自定义标签的主要作用:移除jsp中的jav
一 . JSP标签体系 二 . 标签的执行流程: 三.自定义标签; 3.1 自定义标签的主要作用:移除jsp中的jav
接上文: 【Spring】IOC核心源码学习(二):容器初始化过程 本文将解析spring bean定义标签和自定
目标 1.创建 自定义 标签文件: 在 WEB-INF/tags/ 定义一个后缀名为 .tag 的文件 然后在jsp页面引用.
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号