JSP学习笔记(3)——JSTL 标签库 (3)

引用:

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> 标签 描述
  指定数据源  
  运行SQL查询语句  
  运行SQL更新语句  
  将SQL语句中的参数设为指定值  
  将SQL语句中的日期参数设为指定的java.util.Date 对象值  
  在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行  
连接数据库 <sql:setDataSource var="myDb" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:ORCL" user="xx" password="xx" scope="application"/> 查询 <sql:query var="resultSet" dataSource="${myDb}"> select * from employee where ename like ? and sal>=? and hiredate<? <%--这里的顺序与上面的?顺序相同 --%> <sql:param value="%A%"/> <sql:param>1000.0</sql:param> <sql:dateParam value="${hiredate}"/> </sql:query>

注意:结果集对象的类型不是java.sql.ResulSet 的实例,而是javax.servlet.jsp.jstl.sql.Result 的实例

获取数据 <c:forEach var="emp" items="${resultSet.rows}"> <tr> <td>${emp.empno}</td> <td>${emp.ename}</td> <td>${emp.job}</td> <td>${emp.mgr}</td> <td><fmt:formatDate value="${emp.hiredate}" pattern="yyyy年MM月dd日"/></td> <td><fmt:formatNumber value="${emp.sal}" type="currency" /> </td> <td>${emp['comm']}</td> <td>${emp['deptno']}</td> </tr> </c:forEach> 自定义JSTL标签 1. 定义类

定义一个类,继承与javax.servlet.jsp.tagext.SimpleTagSupport(简单标签的支持类,不允许标签内有主体内容)

重写doTag方法,标签解析之后会自动执行此方法

类中的成员属性名需要与标签的属性名一致,成员属性需要有get/set方法

获得JSP中的out对象:

JspContext jspcontext = this.getJspContext(); JspWriter out = jspcontext.getOut(); out.println(s); 2. 编写tlc文件

在web-inf目录下新建tld文件,文件名随意。tlc文件主要说明标签如何使用,是由哪一个类实现和一些标签的属性配置。

<?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee " version="2.1"> <tlib-version>1.0</tlib-version> <!--下面的两个属性,之后引用需要用到--> <short-name>lq</short-name> <uri></uri> <tag> <description>完成日期的格式化输出</description> <!--标签名--> <name>printDate</name> <!--标签实现类--> <tag-class>com.lanqiao.tag.PrintDateTag</tag-class> <!--标签主休形式--> <body-content>empty</body-content> <attribute> <name>date</name> <!--属性是否必须--> <required>false</required> <!--是否可使用EL或脚本求值--> <rtexprvalue>true</rtexprvalue> <type>java.util.Date</type> </attribute> <attribute> <name>pattern</name> <!--属性是否必须--> <required>false</required> <!--是否可使用EL或脚本求值--> <rtexprvalue>false</rtexprvalue> <type>java.lang.String</type> </attribute> </tag> </taglib> 3. 引用自定义标签

jsp中使用<%@ taglib prefix=”Short-Name” uri=”uri”%>指令引入标签库才能使用。

4. 使用 request.setAttribute("now",new Data()); <lq:printDate date="${now}"/>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxxyz.html