08-08
01

JSP自定义标签实例---从数据库读取数据放在下拉列表中

Myselect.java

view plaincopy to clipboardprint?
package com.xiefei.mytag;  
  
import java.io.IOException;  
import java.sql.Connection;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.util.ArrayList;  
import java.util.List;  
  
import javax.servlet.jsp.JspException;  
import javax.servlet.jsp.JspWriter;  
import javax.servlet.jsp.tagext.BodyContent;  
import javax.servlet.jsp.tagext.BodyTagSupport;  
  
import com.xiefei.db.DBConn;  
import com.xiefei.vo.Users;  
  
public class MySelect extends BodyTagSupport {  
    @Override  
    public void setBodyContent(BodyContent b) {  
        super.setBodyContent(b);  
    }  
  
    @Override  
    public int doStartTag() throws JspException {  
        try {  
            List<USERS></USERS> list = getUserList();  
            JspWriter out =  pageContext.getOut();  
            out.print("<Select>"); for (int i = 0; i < list.size(); i++) { out.print("<OPTION selected>"+list.get(i).getName()); out.print("</OPTION>"); } out.print("</Select>");  
          
        } catch (IOException e) {  
            System.out.println("发生错误!");  
            e.printStackTrace();  
        }  
        return SKIP_BODY;  
    }  
    @Override  
    public int doEndTag() throws JspException {  
        return EVAL_PAGE;  
    }  
  


   /**  
     * 返回用户列表  
     *  
     * @return  
     */  
    public List<USERS></USERS> getUserList() {  
  
        List<USERS></USERS> list = new ArrayList();  
        DBConn dbconn = new DBConn();  
        Connection conn = dbconn.getConnection();  
        String mysql = "select name from users";  
        PreparedStatement statement = null;  
        ResultSet rs = null;  
        try {  
            statement = conn.prepareStatement(mysql);  
            rs = statement.executeQuery();  
            while (rs.next()) {  
                Users user = new Users();  
                user.setName(rs.getString(1));  
                list.add(user);  
            }  
        } catch (SQLException e) {  
            e.printStackTrace();  
            return null;  
        } finally {  
  
            try {  
                rs.close();  
                statement.close();  
                conn.close();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
        return list;  
    }  
}  



package com.xiefei.mytag;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

import com.xiefei.db.DBConn;
import com.xiefei.vo.Users;

public class MySelect extends BodyTagSupport {
    @Override
    public void setBodyContent(BodyContent b) {
        super.setBodyContent(b);
    }

    @Override
    public int doStartTag() throws JspException {
        try {
            List list = getUserList();
            JspWriter out =  pageContext.getOut();
            out.print(""); for (int i = 0; i < list.size(); i++) { out.print(""+list.get(i).getName()); out.print(""); } out.print("");
        
        } catch (IOException e) {
            System.out.println("发生错误!");
            e.printStackTrace();
        }
        return SKIP_BODY;
    }
    @Override
    public int doEndTag() throws JspException {
        return EVAL_PAGE;
    }

    /**
     * 返回用户列表
     *
     * @return
     */
    public List getUserList() {

        List list = new ArrayList();
        DBConn dbconn = new DBConn();
        Connection conn = dbconn.getConnection();
        String mysql = "select name from users";
        PreparedStatement statement = null;
        ResultSet rs = null;
        try {
            statement = conn.prepareStatement(mysql);
            rs = statement.executeQuery();
            while (rs.next()) {
                Users user = new Users();
                user.setName(rs.getString(1));
                list.add(user);
            }
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        } finally {

            try {
                rs.close();
                statement.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return list;
    }
}




DBconn.java  

DBconn.javaview plaincopy to clipboardprint?
package com.xiefei.db;  

package com.xiefei.db;view plaincopy to clipboardprint?
import java.sql.Connection;<BR>import java.sql.DriverManager;<BR>import java.sql.SQLException;  

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;view plaincopy to clipboardprint?
public class DBConn {<BR> <BR> static{<BR>  try {<BR>   Class.forName("com.mysql.jdbc.Driver");<BR>  } catch (ClassNotFoundException e) {<BR>   e.printStackTrace();<BR>  }<BR> }<BR> /**<BR>  * 得到数据库连接<BR>  * @return 一个数据库连接<BR>  */<BR> public Connection getConnection(){<BR>  Connection conn=null;<BR>  try{<BR>   conn=DriverManager.getConnection("jdbc:mysql://localhost/userinformation","root","123");<BR>  } catch (SQLException e) {<BR>   e.printStackTrace();<BR>  }<BR>  return conn;<BR> }<BR> <BR>}<BR>  

public class DBConn {  static{  try {   Class.forName("com.mysql.jdbc.Driver");  } catch (ClassNotFoundException e) {   e.printStackTrace();  } } /**  * 得到数据库连接  * @return 一个数据库连接  */ public Connection getConnection(){  Connection conn=null;  try{   conn=DriverManager.getConnection("jdbc:mysql://localhost/userinformation","root","123");  } catch (SQLException e) {   e.printStackTrace();  }  return conn; } }



Users.java  

Users.javaview plaincopy to clipboardprint?
package com.xiefei.vo;  

package com.xiefei.vo;view plaincopy to clipboardprint?
public class Users {<BR> private int id;<BR> private String name;  

public class Users { private int id; private String name;view plaincopy to clipboardprint?
public int getId() {<BR>  return id;<BR> }  

public int getId() {  return id; }view plaincopy to clipboardprint?
public void setId(int id) {<BR>  this.id = id;<BR> }  

public void setId(int id) {  this.id = id; }view plaincopy to clipboardprint?
public String getName() {<BR>  return name;<BR> }  

public String getName() {  return name; }view plaincopy to clipboardprint?
public void setName(String name) {<BR>  this.name = name;<BR> }<BR>}<BR>  

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



myselect.tld  

myselect.tldview plaincopy to clipboardprint?
<?xml version="1.0" encoding="GBK" ?><BR><!DOCTYPE taglib<BR>  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"<BR>  "<A href="http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd</A>"><BR><!-- 描述 --><BR><taglib><BR> <tlib-version>1.0</tlib-version><BR> <jsp-version>1.2</jsp-version><BR> <short-name>myselect</short-name>  

<?xml version="1.0" encoding="GBK" ?><!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>myselect</short-name>view plaincopy to clipboardprint?
<tag><BR>  <name>myselect</name><BR>  <tag-class>com.xiefei.mytag.MySelect</tag-class><BR>  <body-content>jsp</body-content><BR> </tag>  

<tag>  <name>myselect</name>  <tag-class>com.xiefei.mytag.MySelect</tag-class>  <body-content>jsp</body-content> </tag>view plaincopy to clipboardprint?
</taglib>  

</taglib>




index.jsp  

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><BR><%@ taglib uri="WEB-INF/myselect.tld" prefix="m"%><BR><%<BR>String path = request.getContextPath();<BR>String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<BR>%>  

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ taglib uri="WEB-INF/myselect.tld" prefix="m"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>view plaincopy to clipboardprint?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><BR><html><BR>  <head><BR>    <base href="<%=basePath%>"><BR>    <BR>    <title>My JSP 'index.jsp' starting page</title><BR>  </head><BR>  <BR>  <body>  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title>  </head>    <body> <m:myselect/>
  </body>
</html>



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 939
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭