自定义标签 TagSupport
程序员文章站
2022-06-08 18:04:50
...
本人写的第一个web项目设计权限时,用的就是自定义标签,觉得用自定义标签来设计一个小的web程序权限,非常的简单,虽然有很久没用了,但我觉得有必要记记,万一以后用的着呢!
标签处理 priveTag.tld文件
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" 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 web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>p</short-name>
<uri>http://shude.com/prive</uri>
<tag>
<!-- <p:valid item='${}'/> -->
<name>valid</name>
<!-- 标签处理类 -->
<tag-class>com.shude.tag.PriveTag</tag-class>
<!-- 如果不需要标签体则设置empty,反之设定jsp -->
<body-content>empty</body-content>
<attribute>
<!-- 设置标签名字 -->
<name>item</name>
<!-- 是否是必须,如果非必须没设置则为空 -->
<required>true</required>
<!-- 是否可在属性中使用表达式 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<!-- <p:valid item='${}'/> -->
<name>prive</name>
<!-- 标签处理类 -->
<tag-class>com.shude.tag.PriveTag</tag-class>
<!-- 如果不需要标签体则设置empty,反之设定jsp -->
<body-content>jsp</body-content>
<attribute>
<!-- 设置标签名字 -->
<name>value</name>
<!-- 是否是必须,如果非必须没设置则为空 -->
<required>true</required>
<!-- 是否可在属性中使用表达式 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
自定义标签 PriveTag.java类
package com.shude.tag;
import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
import com.shude.entity.UserInfo;
import com.shude.util.CommUtil;
/**
* 自定义标签
* @author Administrator
*
*/
public class PriveTag extends TagSupport {
private static final long serialVersionUID = 4952483547937739096L;
private String value;
public void setvalue(String value) {
this.value = value;
}
/**
* 标签开始时使用的方法
*/
@Override
public int doStartTag() throws JspException {
Object obj=pageContext.getSession().getAttribute("userInfo");//获取用户表中所有信息
if(obj!=null){
UserInfo user=(UserInfo)obj;
List<String> powerList=CommUtil.newInstance().getRolePowerList(user.getRoleId());//获取用户权限集合
if(powerList.contains(value))
return EVAL_BODY_INCLUDE;
}
return SKIP_BODY;
}
}
测试页面test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 引用标签 -->
<%@ taglib uri="http://shude.com/prive" prefix="p" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试页</title>
</head>
<body>
<!-- 当用户的权限值为find时, 则可以看见测试按钮,否则就不能看见-->
<div>
<p:prive value="find">
<input type="button" name="test1" value="测试按钮">
</p:prive>
</div>
</body>
</html>
以上内容仅供参考!上一篇: 枸杞芽茶的功效和禁忌有哪些