java中结合struts2自定义标签的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java中结合struts2自定义标签的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3874字,纯文字阅读大概需要6分钟。
内容图文
![java中结合struts2自定义标签的使用](/upload/InfoBanner/zyjiaocheng/1202/3c9204b4f5ce46b38f11b408f3bf1901.jpg)
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 { 1415private String value; 1617private String name; 1819public String getName() { 20return name; 21 } 2223publicvoid setName(String name) { 24this.name = name; 25 } 2627public String getValue() { 28return value; 29 } 3031publicvoid setValue(String value) { 32this.value = value; 33 } 3435 @SuppressWarnings("unchecked") 36 @Override 37publicvoid 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); 44for (String s : functions) { 45if (s.equals(str)) { 46 sb.append("<a href=\"javascript:alert(‘有权限‘)\">") 47 .append(value).append("</a>"); 48break; 49 } 50 } 51if (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 19publicvoid 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 } 2829 @Override 30publicvoid sessionDestroyed(HttpSessionEvent hse) { 31 } 323334 }
二、在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 ="添加人信息" />
原文:http://www.cnblogs.com/zhangqiyang/p/3699405.html
内容总结
以上是互联网集市为您收集整理的java中结合struts2自定义标签的使用全部内容,希望文章能够帮你解决java中结合struts2自定义标签的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。