7. Jsp 自定义标签
2016-07-03 00:00
639 查看
全部xml配置:
[code=language-java]<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.0</tlib-version> <short-name>java1234Tag</short-name> <tag> <name>helloWorld</name> <tag-class> com.java1234.tag.HelloWorldTag </tag-class> <body-content>empty</body-content> </tag> <tag> <name>helloWorld2</name> <tag-class> com.java1234.tag.HelloWorldTag2 </tag-class> <body-content>empty</body-content> <attribute> <name>name</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> <tag> <name>iterate</name> <tag-class> com.java1234.tag.IterateTag </tag-class> <body-content>JSP</body-content> <attribute> <name>var</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>items</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> <tag> <name>iterate2</name> <tag-class> com.java1234.tag.IterateSimpleTag </tag-class> <body-content>scriptless</body-content> <attribute> <name>var</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>items</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>
[code=language-java]<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="java1234" uri="/WEB-INF/java1234.tld" %> <!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>Insert title here</title> </head> <body> <java1234:helloWorld/> </body> </html>
[code=language-java]package com.java1234.tag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class HelloWorldTag extends TagSupport{ /** * */ private static final long serialVersionUID = 1L; @Override public int doStartTag() throws JspException { JspWriter out=this.pageContext.getOut(); try { out.println("自定义标签大爷你好!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return TagSupport.SKIP_BODY; // 直接结束标签 } }
[code=language-java]<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="java1234" uri="/WEB-INF/java1234.tld" %> <!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>Insert title here</title> </head> <body> <java1234:helloWorld2 name="JspServlet屌炸天"/> </body> </html>
[code=language-java]package com.java1234.tag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class HelloWorldTag2 extends TagSupport{ /** * */ private static final long serialVersionUID = 1L; private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int doStartTag() throws JspException { JspWriter out=this.pageContext.getOut(); try { out.println(name+"自定义标签大爷你好!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return TagSupport.SKIP_BODY; // 直接结束标签 } }
[code=language-java]package com.java1234.tag; import java.util.Iterator; import java.util.List; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; public class IterateTag extends TagSupport{ /** * */ private static final long serialVersionUID = 1L; private String var; private String items; private Iterator iter; public String getVar() { return var; } public void setVar(String var) { this.var = var; } public String getItems() { return items; } public void setItems(String items) { this.items = items; } public Iterator getIter() { return iter; } public void setIter(Iterator iter) { this.iter = iter; } @Override public int doStartTag() throws JspException { Object value=this.pageContext.getAttribute(items); if(value!=null && value instanceof List){ this.iter=((List)value).iterator(); if(iter.hasNext()){ this.pageContext.setAttribute(var, iter.next()); return TagSupport.EVAL_BODY_INCLUDE; // 执行标签体 }else{ return TagSupport.SKIP_BODY; // 退出标签执行 } }else{ return TagSupport.SKIP_BODY; // 退出标签执行 } } @Override public int doAfterBody() throws JspException { if(iter.hasNext()){ this.pageContext.setAttribute(var, iter.next()); return TagSupport.EVAL_BODY_AGAIN; // 再执行一次标签体 }else{ return TagSupport.SKIP_BODY; // 退出标签执行 } } }
[code=language-java]package com.java1234.tag; import java.util.Iterator; import java.util.List; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; public class IterateTag extends TagSupport{ /** * */ private static final long serialVersionUID = 1L; private String var; private String items; private Iterator iter; public String getVar() { return var; } public void setVar(String var) { this.var = var; } public String getItems() { return items; } public void setItems(String items) { this.items = items; } public Iterator getIter() { return iter; } public void setIter(Iterator iter) { this.iter = iter; } @Override public int doStartTag() throws JspException { Object value=this.pageContext.getAttribute(items); if(value!=null && value instanceof List){ this.iter=((List)value).iterator(); if(iter.hasNext()){ this.pageContext.setAttribute(var, iter.next()); return TagSupport.EVAL_BODY_INCLUDE; // 执行标签体 }else{ return TagSupport.SKIP_BODY; // 退出标签执行 } }else{ return TagSupport.SKIP_BODY; // 退出标签执行 } } @Override public int doAfterBody() throws JspException { if(iter.hasNext()){ this.pageContext.setAttribute(var, iter.next()); return TagSupport.EVAL_BODY_AGAIN; // 再执行一次标签体 }else{ return TagSupport.SKIP_BODY; // 退出标签执行 } } }
[code=language-java]package com.java1234.tag; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.SimpleTagSupport; import javax.servlet.jsp.tagext.TagSupport; public class IterateSimpleTag extends SimpleTagSupport{ /** * */ private static final long serialVersionUID = 1L; private String var; private String items; public String getVar() { return var; } public void setVar(String var) { this.var = var; } public String getItems() { return items; } public void setItems(String items) { this.items = items; } @Override public void doTag() throws JspException, IOException { Object value=this.getJspContext().getAttribute(items); if(value!=null && value instanceof List){ Iterator iter=((List)value).iterator(); while(iter.hasNext()){ this.getJspContext().setAttribute(var, iter.next()); this.getJspBody().invoke(null); // 响应页面 } } } }
[code=language-java]<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %> <%@ taglib prefix="java1234" uri="/WEB-INF/java1234.tld" %> <!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>Insert title here</title> <% List people=new ArrayList(); people.add("王二小2"); people.add("丝丝光2"); people.add("草泥马2"); pageContext.setAttribute("people", people); %> </head> <body> <java1234:iterate2 items="people" var="p"> <h2>${p }</h2> </java1234:iterate2> </body> </html>
相关文章推荐
- 省市联动 js
- JavaScript网页编程之------JavaScript与Html结合方式
- Ajax前台返回JSON数据后再Controller中直接转换成类型使用,后台接收json转成实体的方法
- jsonp跨域问题
- atom markdown报错:AssertionError: html-pdf: Failed to load PhantomJS module.
- ArcGIS Server发布的地图服务不显示地图的原因分析
- javascript基本知識-w3Schools-3
- JS小瞰
- js构造函数的方法与原型prototype
- JavaScript - 原型
- 如何校验json格式的正确性
- Nutz-使用Jspview跳转页面报404
- 外部引用js的两种手法
- js浮点数运算
- Json(一)
- 学习Discuz! X3.2记录:快速回复插件,通过js使选择的下拉列表填充到回帖内容中
- 也许你会混淆window和document
- javaScript
- first xss worm
- 文章标题