手机
当前位置:查字典教程网 >编程开发 >Java >Java自定义简单标签实例
Java自定义简单标签实例
摘要:下面将以权限的控制为例自定义一个标签:一、标签类型复制代码代码如下:步骤:1.自定义一个类PerssionTag继承SimpleTagSup...

下面将以权限的控制为例自定义一个标签:

一、标签类型

复制代码 代码如下:

<wxt:per uri="${pageContext.request.contextPath }/privilege/list"></wxt:per>

步骤:

1.自定义一个类PerssionTag 继承SimpleTagSupport(自定义标签一般都会继承这个类)

复制代码 代码如下:

package cn.com.liveuc.privilege.tag;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import java.util.Set;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.PageContext;

import javax.servlet.jsp.tagext.SimpleTagSupport;

import cn.com.liveuc.privilege.model.Privilege;

import cn.com.liveuc.privilege.model.Resource;

import cn.com.liveuc.privilege.model.Role;

import cn.com.liveuc.privilege.model.User;

/**

*

* @说明 自定义标签

*/

public class PerssionTag extends SimpleTagSupport {

//自定义标签属性,用于标签传入参数

private String uri;

//接收标签传入的参数

public void setUri(String uri) {

this.uri = uri;

}

@Override

public void doTag() throws JspException, IOException {

//获取用户登陆后保存的Session

PageContext page = (PageContext) this.getJspContext();

User user = (User) page.getSession().getAttribute("login");

//如果用户登陆

if(user != null) {

//用户登陆判断用户权限

List<String> list = new ArrayList<String>();

//获取用户的角色

Set<Role> role = user.getRole();

for(Role r:role) {

//获取角色对应的权限

Set<Privilege> privilege = r.getPrivilege();

for(Privilege p:privilege) {

//获取权限对应的资源

Set<Resource> res = p.getResource();

for(Resource re:res) {

list.add(re.getUri());

}

}

}

for(String ur:list) {

//判断用户的权限

if(ur.equals(uri)) {

this.getJspBody().invoke(null); //有权限输出标签体内容

}

}

}

}

}

2.在WEB-INF下创建tld文件描述标签。

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

version="2.0"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd">

<description><![CDATA["To make it easier to access dynamic data;

the Apache Struts framework includes a library of custom tags.

The tags interact with the framework's validation and internationalization features;

to ensure that input is correct and output is localized.

The Struts Tags can be used with JSP FreeMarker or Velocity."]]></description>

<display-name>"Struts Tags"</display-name>

<tlib-version>2.2.3</tlib-version>

<short-name>s</short-name>

<uri>/wxt</uri>

<tag>

<name>per</name><>

<tag-class>cn.com.liveuc.privilege.tag.PerssionTag</tag-class>

<body-content>scriptless</body-content>

<>

<attribute>

<name>uri</name><>

<required>true</required><>

<rtexprvalue>true</rtexprvalue><>

</attribute>

</tag>

</taglib>

3.运用标签

在Jsp页面导入标签:

<A href="mailto:%@taglib prefix='wxt' uri='/wxt' %">%@taglib prefix="wxt" uri="/wxt" %</A>

运用标签:

<wxt:per uri="${pageContext.request.contextPath }/user/list">

<a href="${pageContext.request.contextPath }/user/list" target="reight">用户管理</a>

</wxt:per>

用户权限包含uri资源的将会输出标签内容。

【Java自定义简单标签实例】相关文章:

java堆栈类使用实例(java中stack的使用方法)

Java读写文件创建文件夹多种方法示例详解

在Java中自由块的执行顺序

Java读取Excel文件内容的简单实例

Java调用DOS实现定时关机的实例

java控制Pdf自动打印的小例子

java 获取数据库连接的实现代码

java 四舍五入使java保留2位小数示例讲解

java类中使用Jfreechart的简单实例

简单的用java实现读/写文本文件的示例

精品推荐
分类导航