WEB开发网
开发学院软件开发Java 利用 JSP 2 提供的 SimpleTagSupport 开发自定义标... 阅读

利用 JSP 2 提供的 SimpleTagSupport 开发自定义标签

 2010-06-29 00:00:00 来源:WEB开发网   
核心提示: 图 1. 简单标签带属性的标签前面的简单标签既没有属性,也没有标签体,利用 JSP 2 提供的 SimpleTagSupport 开发自定义标签(6),用法、功能都比较简单,实际上还有如下两种常用的标签:带属性的标签,带标签体的标签,正如前面介绍的

图 1. 简单标签
利用 JSP 2 提供的 SimpleTagSupport 开发自定义标签

带属性的标签

前面的简单标签既没有属性,也没有标签体,用法、功能都比较简单。实际上还有如下两种常用的标签:

带属性的标签。

带标签体的标签。

正如前面介绍的,带属性标签必须为每个属性提供对应的 setter 和 getter 方法。带属性标签的配置方法与简单标签也略有差别,下面介绍一个带属性标签的示例:

public class QueryTag extends SimpleTagSupport 
{ 
  //标签的属性 
  private String driver; 
  private String url; 
  private String user; 
  private String pass; 
  private String sql; 
  //执行数据库访问的对象 
  private Connection conn = null; 
  private Statement stmt = null; 
  private ResultSet rs = null; 
  private ResultSetMetaData rsmd = null; 
  //标签属性driver的setter方法 
  public void setDriver(String driver) { 
    this.driver = driver; 
  } 
    //标签属性url的setter方法 
  public void setUrl(String url) { 
    this.url = url; 
  } 
    //标签属性user的setter方法 
  public void setUser(String user) { 
    this.user = user; 
  } 
    //标签属性pass的setter方法 
  public void setPass(String pass) { 
    this.pass = pass; 
  } 
    //标签属性driver的getter方法 
  public String getDriver() { 
    return (this.driver); 
  } 
    //标签属性url的getter方法 
  public String getUrl() { 
    return (this.url); 
  } 
    //标签属性user的getter方法 
  public String getUser() { 
    return (this.user); 
  } 
    //标签属性pass的getter方法 
  public String getPass() { 
    return (this.pass); 
  } 
    //标签属性sql的getter方法 
  public String getSql() { 
    return (this.sql); 
  } 
    //标签属性sql的setter方法 
  public void setSql(String sql) { 
    this.sql = sql; 
  } 
  public void doTag()throws JspException, 
    IOException 
  { 
      try 
    { 
      //注册驱动 
      Class.forName(driver); 
      //获取数据库连接 
      conn = DriverManager.getConnection(url,user,pass); 
      //创建Statement对象 
      stmt = conn.createStatement(); 
      //执行查询 
      rs = stmt.executeQuery(sql); 
      rsmd = rs.getMetaData(); 
      //获取列数目 
      int columnCount = rsmd.getColumnCount(); 
      //获取页面输出流 
      Writer out = getJspContext().getOut(); 
      //在页面输出表格 
      out.write("<table border='1' bgColor='9999cc' width='400'>"); 
      //遍历结果集 
      while (rs.next()) 
      { 
        out.write("<tr>"); 
        //逐列输出查询到的数据 
        for (int i = 1 ; i <= columnCount ; i++ ) 
        { 
          out.write("<td>"); 
          out.write(rs.getString(i)); 
          out.write("</td>"); 
        } 
        out.write("</tr>"); 
      } 
    } 
    catch(ClassNotFoundException cnfe) 
    { 
      cnfe.printStackTrace(); 
      throw new JspException("自定义标签错误" + cnfe.getMessage()); 
    } 
    catch (SQLException ex) 
    { 
      ex.printStackTrace(); 
      throw new JspException("自定义标签错误" + ex.getMessage()); 
    } 
    finally 
    { 
      //关闭结果集 
      try 
      { 
        if (rs != null) 
          rs.close(); 
        if (stmt != null) 
          stmt.close(); 
        if (conn != null) 
          conn.close(); 
      } 
      catch (SQLException sqle) 
      { 
        sqle.printStackTrace(); 
      } 
    } 
  } 
} 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:利用 JSP 提供

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接