07820170914
jstl自定义标签:主要用于移除Jsp页面中的java代码
1、编写一个类,继承SimpleTagSupport[类属性与配置在tld中的属性参数一致,添加set、get方法]
2、重写doTage(标签的核心方法,输出标签的内容)
3、编写一个tld文件(描述标签的属性[标签名、对应的类、对应的uri...])package com.tiger.tag;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
* 遍历集合,nobody
* @author tiger
* @time 2017年9月13日
*/
public class MySelect extends SimpleTagSupport{
//设置参数,与.tld文件中attribute中的name一致
private Map map;
private String path;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
@Override
public void doTag() throws JspException, IOException {
//内置一个pageContext对象,它里面是封装了9个隐式对象
StringBuffer htmlBuffer=new StringBuffer();
//遍历集合元素
htmlBuffer.append("");
Set set = map.keySet();
for (Object key : set) {
htmlBuffer.append(" ");
}
htmlBuffer.append(" ");
getJspContext().getOut().println(htmlBuffer.toString());
}
}
package com.tiger.tag;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
* 遍历集合,hasbody
* @author tiger
* @time 2017年9月13日
*/
public class MySelectBody extends SimpleTagSupport{
//设置参数,与.tld文件中attribute中的name一致
private Map map;
private String path;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
@Override
public void doTag() throws JspException, IOException {
JspWriter out = getJspContext().getOut();
out.println(" ");
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
getJspContext().setAttribute("map", map.get(it.next()));
getJspBody().invoke(null);
}
out.println("");
}
}
JSTL 1.1 core library
JSTL core
1.1
tiger
http://www.tiger.com/tigertag
table
com.tiger.tag.MyTable
empty
collection
true
true
select
com.tiger.tag.MySelect
empty
map
true
true
path
true
true
selectbody
com.tiger.tag.MySelectBody
scriptless
map
true
true
path
true
true
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.Collection"%>
<%@page import="java.util.Collections"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="my" uri="http://www.tiger.com/tigertag"%>
<%
Map map = new HashMap();
map.put("001", "tiger");
map.put("002", "hello");
map.put("003", "xixi");
pageContext.setAttribute("map", map);
%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.Collection"%>
<%@page import="java.util.Collections"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="my" uri="http://www.tiger.com/tigertag"%>
----自定义标签库-hasbody----
<%
Map map = new HashMap();
map.put("001", "body");
map.put("002", "呵呵");
map.put("003", "嘻嘻");
pageContext.setAttribute("map", map);
%>
自定义jstl标签用法案例
最新推荐文章于 2018-08-03 22:33:25 发布