JSTL自定义标签的使用
2011-10-16 22:54
267 查看
由于dwr的js和jquery冲突,导致不得不换解决方案,记得以前写过一个OA项目,里面有一个jstl的权限标签,今天根据管理员ID那管理员名字的时候可以使用这个技术,于是记个简单的步骤,以免以后再次使用:
1.先写一个标签的处理类:
当然,这个处理类用spring注入sysBizFactory,这个配置估计很熟悉,不需要记录
2.然后给处理类定义一个tld文件,这个文件放入到WEB-INF下
3.使用:首先引入标签:
4.在web.xml中注册:
可以使用了:
这个地方是一个很简单的应用,实际上用得比较舒服的地方是权限的控制,控制某个人是否有权限之类的,由于某个页面当中用户拥有的权限比较复杂,不可能在服务器端查出所有权限,只能在页面上根据具体情况具体查出用户是否拥有这个权限
下面贴一个权限的标签文件,做个备份:
页面的使用方法:
1.先写一个标签的处理类:
package net.txon.kxt.exam.sys.util; import net.txon.kxt.exam.sys.factory.SysBizFactory; /** * @author 紫竹 * 获得管理员名字 */ public class ManagerUtils { //这个地方貌似必须要用静态的 private static SysBizFactory sysBizFactory = null; //这个地方一定不能用静态的,否则会注入不进去 public void setSysBizFactory(SysBizFactory sysBizFactory) { this.sysBizFactory = sysBizFactory; } public static String getNameById(Long id){ String name = sysBizFactory.getManagerBiz().getNameById(id); return name; } }
当然,这个处理类用spring注入sysBizFactory,这个配置估计很熟悉,不需要记录
2.然后给处理类定义一个tld文件,这个文件放入到WEB-INF下
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>my</short-name> <uri>http://www.zizhu.com/kxt/functions</uri> <function> <name>getManagerNameById</name> <function-class>net.txon.kxt.exam.sys.util.ManagerUtils</function-class> <function-signature>java.lang.String getNameById(java.lang.Long)</function-signature> </function> </taglib>
3.使用:首先引入标签:
<%@ taglib uri="http://www.zizhu.com/kxt/functions" prefix="my"%>
4.在web.xml中注册:
<!-- 自定义函数库 --> <jsp-config> <taglib> <taglib-uri>http://www.zizhu.com/oa/functions</taglib-uri> <taglib-location>/WEB-INF/my.tld</taglib-location> </taglib> </jsp-config>
可以使用了:
${my:getManagerNameById(adminId)}
这个地方是一个很简单的应用,实际上用得比较舒服的地方是权限的控制,控制某个人是否有权限之类的,由于某个页面当中用户拥有的权限比较复杂,不可能在服务器端查出所有权限,只能在页面上根据具体情况具体查出用户是否拥有这个权限
下面贴一个权限的标签文件,做个备份:
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>my</short-name> <uri>http://www.zizhu.com/oa/functions</uri> <function> <name>hasPermission</name> <function-class>com.oa.web.SecurityFunction</function-class> <function-signature>boolean hasPermission(int, java.lang.String ,int)</function-signature> </function> </taglib>这个用法已经很全面了,估计到时候根据这个改也会了
页面的使用方法:
<c:if test="${my:hasPermission(login.id,'person',0)}"> <a href="javascript:void(0);" onclick="openWin('person/personAction!addInput?orgId=<s:property value="orgId"/>','addPerson',600,200);">添加人员信息</a> </c:if>
相关文章推荐
- JavaWeb开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)
- 使用自定义标签模拟jstl的<c:for each>标签
- JAVAWEB开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)
- JAVAWEB开发之JSTL标签库的使用、 自定义EL函数、自定义标签(带属性的、带标签体的)
- jsp使用jstl标签实现国际化
- 在使用JSTL时出现According to TLD or attribute directive in tag file
- 使用Maven配置Jstl出现异常:The absolute uri: http://java.sun.com/jsp/jstl/core cannot...
- JSP基础语法之十六:JSTL配置和核心标签(C)的使用
- JSP标签-JSTL-自定义标签
- 在GAE里面使用JSTL
- JSTL表达式的使用----标准标签库
- JSTL core c 标签的使用
- JSTL和EL的使用
- el表达式保留两位小数、使用jstl <fmt:formatNumber>标签保留两位小数
- 【JSP】JSTL使用core标签总结(不断更新中)
- 使用jstl标签库实现URL地址重写
- JSP 最佳实践: 使用JSTL来更新JSP页面
- JSTL自定义标签
- JSTL 核心标签库 使用
- 使用spring 调试提示:Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV