java语言 百分网手机站

Java自定义简单标签实例

时间:2020-11-09 09:39:02 java语言 我要投稿

Java自定义简单标签实例

  引导语:当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签。以下是百分网小编分享给大家的Java自定义简单标签实例,欢迎阅读!

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

  一、标签类型

  步骤:

  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 list = new ArrayList();

  //获取用户的角色

  Set role = user.getRole();

  for(Role r:role) {

  //获取角色对应的权限

  Set privilege = r.getPrivilege();

  for(Privilege p:privilege) {

  //获取权限对应的资源

  Set 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文件描述标签。

  复制代码 代码如下:

  version="2.0"

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

  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."]]>

  "Struts Tags"

  2.2.3

  s

  /wxt

  per

  cn.com.liveuc.privilege.tag.PerssionTag

  scriptless

  uri

  true

  true

  3.运用标签

  在Jsp页面导入标签:

  %@taglib prefix="wxt" uri="/wxt" %

  运用标签:

  用户管理

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

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

1.Java标签、按钮和按钮事件简介

2.java动态方法调度实例

3.java调用c函数的实例

4.Java中synchronized的使用实例

5.Java中Websocket使用实例解析

6.java读取解析xml文件实例

7.Java自定义范型的应用技巧

8.Java中的多态用法实例分析

9.java旋转二维数组实例