java中结合struts2自定义标签的使用

java中结合struts2自定义标签的使用


一、建立一个继承于SimpleTagSupport类实现它的doTag方法


 1 package com.xiangshang.tag;
2
3 import java.io.IOException;
4 import java.util.List;
5
6 import javax.servlet.jsp.JspException;
7 import javax.servlet.jsp.PageContext;
8 import javax.servlet.jsp.tagext.SimpleTagSupport;
9
10 import com.opensymphony.xwork2.ActionContext;
11 import com.opensymphony.xwork2.util.ValueStack;
12
13 public class FunctionTag extends SimpleTagSupport {
14
15 private String value;
16
17 private String name;
18
19 public String getName() {
20 return name;
21 }
22
23 public void setName(String name) {
24 this.name = name;
25 }
26
27 public String getValue() {
28 return value;
29 }
30
31 public void setValue(String value) {
32 this.value = value;
33 }
34
35 @SuppressWarnings("unchecked")
36 @Override
37 public void doTag() throws JspException, IOException {
38 StringBuilder sb = new StringBuilder();
39 PageContext pageContext = (PageContext) this.getJspContext();
40 List<String> functions = (List<String>) pageContext.getSession()
41 .getAttribute("functions");
42 ValueStack vs = ActionContext.getContext().getValueStack();
43 String str = (String) vs.findValue(name);
44 for (String s : functions) {
45 if (s.equals(str)) {
46 sb.append("<a href=\"javascript:alert(‘有权限‘)\">")
47 .append(value).append("</a>");
48 break;
49 }
50 }
51 if (sb.length()==0) {
52 sb.append("<a href=\"javascript:alert(‘没权限!!‘)\">")
53 .append(value).append("</a>");
54 }
55 pageContext.getOut().print(sb);
56 }
57 }

  为了测试方便本人在建立了session监听器来存储function:

   


 1 package com.xiangshang.listener;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import javax.servlet.ServletContext;
7 import javax.servlet.ServletContextEvent;
8 import javax.servlet.ServletContextListener;
9 import javax.servlet.http.HttpSessionEvent;
10 import javax.servlet.http.HttpSessionListener;
11
12 import org.springframework.web.context.WebApplicationContext;
13 import org.springframework.web.context.support.WebApplicationContextUtils;
14
15 import com.xiangshang.service.UserService;
16
17 public class MySessionListener implements HttpSessionListener{
18 @Override
19 public void sessionCreated(HttpSessionEvent hse) {
20 System.out.println("Zhangqy Session Created");
21 List<String> functions= new ArrayList<String>();
22 functions.add("添加人信息");
23 functions.add("删除人信息");
24 functions.add("查看人信息");
25 functions.add("修改人信息");
26 hse.getSession().setAttribute("functions",functions);
27 }
28
29 @Override
30 public void sessionDestroyed(HttpSessionEvent hse) {
31 }
32
33
34 }

二、在WEB-INF下创建tld 文件:xiangshang.tld

 


 1  <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd" >
3 <taglib>
4 <tlib-version>1.0</tlib-version>
5 <jsp-version>2.0</jsp-version>
6 <short-name>x</short-name>
7 <uri>/xiangshang-tags</uri>
8 <display-name>xiangshang tags</display-name>
9 <tag>
10 <name>a</name>
11 <tag-class>com.xiangshang.tag.FunctionTag</tag-class>
12 <body-content>empty</body-content>
13 <attribute>
14 <name>name</name>
15 <required>true</required>
16 <rtexprvalue>true</rtexprvalue>
17 <type>java.lang.String</type>
18 </attribute>
19 <attribute>
20 <name>value</name>
21 <required>true</required>
22 <rtexprvalue>true</rtexprvalue>
23 <type>java.lang.String</type>
24 </attribute>
25 </tag>
26 </taglib>

三、在jsp界面中首先倒入自定义的标签库 :

<%@ taglib uri="/xiangshang-tags" prefix="x" %>

四、接下来就是开始使用自定义标签了:

<x:a name="添加人信息" value="添加人信息"/>

java中结合struts2自定义标签的使用,布布扣,bubuko.com

时间: 2024-10-25 20:55:58

java中结合struts2自定义标签的使用的相关文章

Struts2自定义标签2

    body-content的值有下面4种: <xsd:enumeration value="tagdependent"/> <xsd:enumeration value="JSP"/> <xsd:enumeration value="empty"/> <xsd:enumeration value="scriptless"/> tagdependent:标签体内容直接被写入B

Struts2自定义标签3模仿原有的s:if s:elseif s:else自定义自己的if elsif else

第一步:webroot/web-inf下简历str.tld文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dt

在Java中,使用自定义包

在使用自定义包的时候,需将自定义编写包中的类编写并编译在和包名一致的目录当中,然后应在cmd中设置新的环境变量,若包tom.jiafei的类的字节码在C:1000\Java学习\tom\jiafei中,则设置过程为 例如:set classpath=E:\jdk1.8\jre\lib\rt.jar;.;C:\1000 原文地址:https://www.cnblogs.com/hutianhao/p/11789780.html

jsp中的自定义标签

(jsp 1.0规范) 一,自定义标签主要用于移除Jsp页面中的java代码: 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1,编写一个实现Tag接口的Java类(标签处理器类). 2,编写标签库描述符(tld)文件,在tld文件中对标签处理器类描述成一个标签.(.tld文件放在WEB-INF目录下面) 二,TAG接口的执行流程: JSP引擎将遇到自定义标签时,首先创建标签处理器类的实例对象,然后按照JSP规范定义的通信规则依次调用它的方法. 1,?public vo

Javaweb学习笔记6—EL表达式与JSTL及自定义标签

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.EL表达式 1,EL简介 Expression Lan

自定义标签-自定义注解

首先是4个自定义注解类StaticResourceType.java public enum StaticResourceType { LESS,CSS,JS} StaticResource.java @Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public @interface StaticResource { StaticResourceType type(); String path(); Dependenc

JSTL标签库,自定义标签

JSTL 简介 JavaServer Pages Standard Tag Library由JCP(Java Community Process)指定标准 提供给 Java Web 开发人员一个标准通用的标签函数库 和 EL 配合来取代传统直接在页面上嵌入 Java 程序(Scripting)的做法,以提高程序可读性.维护性和方便性 JSTL1.1安装 下载 JSTL 主要由Apache组织的Jakarta Project 实现 http://tomcat.apache.org/taglibs/

编写自定义标签

1.8 编写自定义标签 一.作用: 自定义标签主要用于移除Jsp页面中的java代码. ?   控制jsp页面某一部分内容是否执行. ?   控制整个jsp页面是否执行. ?   控制jsp页面内容重复执行. ?   修改j页面内容输出. 二.标签体系:传统标签和简单标签: 1. JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属性和方法.JspTag接口有Tag和SimpleTag两个直接子接口,JSP2.0以前的版本中只有Tag接口

JavaWeb-12 (自定义标签库开发&amp;JSTL标签库)

JavaWeb-12:自定义标签库开发&JSTL标签库 自定义标签库开发 一.自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码. 使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的Java类(标签处理器类). 2.编写标签库描述符(tld)文件,在tld文件中把标 实验:项目架构如下: a.tld <?xml version="1.0" encoding="utf-8" ?> &l