JSP自定义标签(select)

来源:互联网 发布:汤不热同类软件 编辑:程序博客网 时间:2024/05/22 06:38

JS自定义标签实现select功能JSP自定义标签开发步骤:

1、编写处理JAVA类(继承javax.servlet.jsp.tagext.SimpleTagSuppot);

2、建立一个*.tld文件(每一个tld对应一个标签库);

3、在JSP中使用标签

java处理类:

package tag1;import java.io.IOException;import java.io.Writer;import java.util.ArrayList;import java.util.Date;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;public class TagDeal extends SimpleTagSupport {    /**     *     */    private Integer value;    private boolean defaltValue ;        public void doTag()throws JspException,IOException{        List<Student> stuList = new ArrayList<Student>();        stuList.add(new Student(1, "小明"));        stuList.add(new Student(2, "小话"));        stuList.add(new Student(3, "小红"));        Writer out = getJspContext().getOut();         value = 3 ;        StringBuffer sb = new StringBuffer() ;        sb.append("<select name='name'>");        if(defaltValue){            sb.append("<option value=''>--请选择--</option>");        }        for (Student student : stuList) {            if(value==student.getNum()){                sb.append("<option value='"+student.getNum()+"' selected='selected'>");            }else{                sb.append("<option value='"+student.getNum()+"'>");            }            sb.append(student.getName()+"</option>");        }        out.write(sb.toString());    }        class Student{        Integer num ;        String name ;                public Student(Integer num, String name) {            super();            this.num = num;            this.name = name;        }        public Integer getNum() {            return num;        }        public void setNum(Integer num) {            this.num = num;        }        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }    }    public Integer getValue() {        return value;    }    public void setValue(Integer value) {        this.value = value;    }    public boolean isDefaltValue() {        return defaltValue;    }    public void setDefaltValue(boolean defaltValue) {        this.defaltValue = defaltValue;    }    }.tld文件
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"    version="2.0">    <tlib-version>1.0</tlib-version>    <short-name>SimpleTagLibrary</short-name>    <uri>/SimpleTagLibrary</uri>    <tag><description>Outputs Hello, World</description>        <name>selects</name><tag-class>tag1.TagDeal</tag-class><body-content>empty</body-content><attribute><name>defaltValue</name><required>true</required><fragment>true</fragment></attribute><attribute><name>value</name><required>true</required><fragment>true</fragment></attribute>    </tag></taglib>

index.jsp文件

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%@ taglib uri="/SimpleTagLibrary" prefix="mytag"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>Simple Tag - HelloWorld</title><meta http-equiv="pragma" content="no-cache"> </head> <body> <mytag:selects value="1" defaltValue="true"/> </body></html>