自己的tld

做自己的tld

1找到apache-tomcat-8.5.9\webapps\examples\WEB-INF\jsp2

里面有个模板

然后我把不要的东西删掉

我的是这样

<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">
    <description>A tag library exercising SimpleTag handlers.</description>
    <tlib-version>1.0</tlib-version>
    <short-name>SimpleTagLibrary</short-name>
    <uri>http://tomcat.apache.org/jsp2-example-taglib</uri>
    <tag>
        <description>Outputs Hello, World</description>
        <name>helloWorld</name>
        <tag-class>lee.HelloWorldTag</tag-class>
        <body-content>empty</body-content>
    </tag>
</taglib>



<uri>http://tomcat.apache.org/jsp2-example-taglib</uri>    引用tld的唯一地址

<name>helloWorld</name>     引用类的的名字

<tag-class>lee.HelloWorldTag</tag-class>      java类


然后把tld 放在web_inF

然后新建java类,注意我们之前tag-class   包.类


package lee;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class HelloWorldTag extends SimpleTagSupport {

    @Override
    public void doTag() throws JspException, IOException {
        // TODO Auto-generated method stub
        this.getJspContext().getOut().print("ok");
    }

}


然后新建jsp文件


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://tomcat.apache.org/jsp2-example-taglib" prefix="mytag"%>                <%@ taglib uri="唯一地址" prefix="别名"%>     

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <mytag:helloWorld/><br>                               <别名:tld中的name/><br>       

</body>
</html>



//有属性的tld


        <tag>
        <description>Outputs Hello, World</description>
        <name>query</name>
        <tag-class>lee.Query</tag-class>
        <body-content>empty</body-content>
        
        <attribute>
            <name>driver</name>     //属性名字

            <required>true</required>   //是否必要
            <fragment>true</fragment>   //是否支持jsp
        </attribute>


其他的url user pass sql 一样


Query.java



package lee;

import java.io.IOException;

import java.io.Writer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class Query extends SimpleTagSupport {
    private String driver;
    private String url;
    private String user;
    private String pass;
    private String sql;
    

    private Connection conn=null;
    private PreparedStatement pstmt=null;
    private ResultSet rs=null;
    @Override    
    public void doTag() throws JspException, IOException {
        // TODO Auto-generated method stub
        
        try {
            Writer out=getJspContext().getOut();
            Class.forName(driver);
            conn=DriverManager.getConnection(url,user,pass);
            pstmt=conn.prepareStatement(sql);
            rs=pstmt.executeQuery();
            while(rs.next())
            {
                out.write(rs.getString(2)+"</br>");
            }
            conn.close();
            
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            throw new JspException("err");
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            throw new JspException("err");
        }
        
        
    }
    
    public String getSql() {
        return sql;
    }
    public void setSql(String sql) {
        this.sql = sql;
    }
    public String getDriver() {
        return driver;
    }
    public void setDriver(String driver) {
        this.driver = driver;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public String getPass() {
        return pass;
    }
    public void setPass(String pass) {
        this.pass = pass;
    }
    public Connection getConn() {
        return conn;
    }
    public void setConn(Connection conn) {
        this.conn = conn;
    }
    public PreparedStatement getPstmt() {
        return pstmt;
    }
    public void setPstmt(PreparedStatement pstmt) {
        this.pstmt = pstmt;
    }
    public ResultSet getRs() {
        return rs;
    }
    public void setRs(ResultSet rs) {
        this.rs = rs;
    }

}

//jsp


    <mytag:query
        driver="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@localhost:1521:orcl"
        user="scott"
        pass="root"
        sql="select * from emp"/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值