最近在做权限管理系统,要用到自定义标签select,所以就写了一个简单的demo。代码如下:
java类:
public class SelectTag extends TagSupport{
private String name;//定义标签的属性,这个属性表示select的name属性。
private String onchange;//onchange事件
public void setName(String name) {
this.name = name;
}
public void setOnchange(String onchange) {
this.onchange = onchange;
}
public int doStartTag() throws JspException{
return EVAL_BODY_INCLUDE;
}
public int doEndTag() throws JspException{
JspWriter out = pageContext.getOut();
Connection conn = Conn.connection();
String sql = "select * from groupmanager";
Statement stmt=null;;
ResultSet rs=null;
try {
try {
stmt = conn.createStatement();
rs=stmt.executeQuery(sql);
out.write("<select οnchange=\""+onchange+"\" name=\""+name+"\" id=\""+name+"\">");
String groupname = null;
int groupid = 0;
while(rs.next()){
groupname = rs.getString("groupname");
groupid = rs.getInt("groupid");
out.write("<option value =\""+groupid+"\">");
out.write(groupname);
out.write("</option>");
}
out.write("</select>");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}catch(IOException e){
e.printStackTrace();
}
return EVAL_PAGE;
}
}
tld文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>exam</short-name>
<tag>
<name>select</name>
<tag-class>com.hwadee.tag.SelectTag</tag-class>
<body-content>jsp</body-content>
<description>
TagSupport example
</description>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
jsp页面测试:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="ex" uri="/WEB-INF/tag/exam.tld"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript" src="js/jquery.js"></script>
<script language="javascript">
function mysubmit(){
alert($("#role").val());
}
</script>
</head>
<body>
角色:<ex:select name="role" id="role" οnchange='javascript:mysubmit()'/>
</body>
</html>