自定义标签一

java类


package com.nn.taglib;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

public class ListTagLib extends TagSupport{
private static final long serialVersionUID = 1L;

//jsp里面获取来的值
private String name;

//存放一次遍历的值
private String var;

//ID和name
private String property;

private String bgcolor;


@Override
public int doAfterBody() throws JspException { 
return super.doAfterBody();
}

@Override
public int doEndTag() throws JspException {

return super.doEndTag();
}


@Override
public int doStartTag() throws JspException {
JspWriter out = pageContext.getOut();
//获取name的值,这个值将会定位在结果集中的某个字段
Map<String,List<String>> map = new HashMap<String,List<String>>();

List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");

List<String> list2 = new ArrayList<String>();
list2.add("a");
list2.add("b");
list2.add("c");

map.put("data", list1);
map.put("char", list2);

List<String> result = map.get(name);

StringBuffer sb = new StringBuffer();
sb.append("<table");
if(bgcolor!=null){
sb.append(" bgcolor=\"");
sb.append(bgcolor);
sb.append("\" ");
}
sb.append(">");
for(String s : result){
sb.append("<tr>");
sb.append("<td>");
sb.append(s);
sb.append("</td>");
sb.append("</tr>");
}
sb.append("</table>");
try {
out.print(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
return EVAL_BODY_INCLUDE;
}


public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getVar() {
return var;
}

public void setVar(String var) {
this.var = var;
}

public String getProperty() {
return property;
}

public void setProperty(String property) {
this.property = property;
}

public String getBgcolor() {
return bgcolor;
}

public void setBgcolor(String bgcolor) {
this.bgcolor = bgcolor;
}

}

tld文件


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname></shortname>
    <uri>http://www.xiaoluo.com</uri>
    <tag>
    <name>set</name>
    <tagclass>com.nn.taglib.ListTagLib</tagclass>
    <bodycontent>empty</bodycontent>
    <attribute>
    <name>name</name>
    <required>true</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
    <name>property</name>
    <required>false</required>
    <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
    <name>var</name>
    <required>false</required>
    <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
    <name>bgcolor</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    </attribute>
    </tag>
</taglib>

jsp测试文件


<%@ page language="java"  pageEncoding="utf-8"%>
<%@ taglib uri="http://www.xiaoluo.com" prefix="cc" %>
<html>


     <head>
          <title>标记练习</title>
     </head> 


     <body>
          <%
              request.setAttribute("text","tt");
              pageContext.setAttribute("text","bb");
         %>
     <cc:set name="char" property="test" var="tt" bgcolor="red"/> 
     </body>
</html>

 

你可能感兴趣的:(java,Web,jsp,servlet,sun)