`
liyiye
  • 浏览: 426964 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSTL详解(续)

阅读更多
JSTL详解(五)
 
首先,感谢大家的关注,下面我来继续讲解:URL相关的标签,他们的作用主要是负责页面的导航、重定向、资源的获得以及参数的传递等等,他们有:
l         <c:import>
l         <c:redirect>
l         <c:url>
l         <c:param>


<c:import>
作用:导入一个url的资源,相当于jsp 中的<jsp:include page=”path”>标签,同样也可以把参数传递到被导入的页面。
语法:a、资源的内容使用string对象向外暴露
              <c:import url=”url” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”]
[charEncoding=”charEncoding”]>
Optional body content for <c:param> subtags
</c:import>
      b 、资源的内容使用redirect对象向外暴露
              <c:import url=”url” [context=”context”]
varReader=”varReaderName”
[charEncoding=”charEncoding”]>
Body content where varReader is consumed by another action
</c:import>
举例:c_import.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
 <title>JSTL:c:import的使用</title>
</head>
<body bgcolor="#FFFFFF">
<h3>绝对路径 URL</h3>
<blockquote>
<ex:escapeHtml>
 <c:import url="http://127.0.0.1:8080/ch12/footer.jsp"/>
</ex:escapeHtml>
</blockquote>
 
<h3>相对路径并且传递参数到指定的URL</h3>
<blockquote>
 <c:import url="footer.jsp" charEncoding="gb2312">
 <c:param name="userName" value="hellking"/>
 </c:import> 
</blockquote>
</body>
</html>


<c:redirect>
作用:把客户的请求发送到另一个资源,相当于jsp中的<% request.sendRedirect(“other.jsp”)%>或者servlet中的RequestDispatch.forward(“other.jsp”)的功能。
语法:a、没有body的情况
              <c:redirect url=”value” [context=”context”]/>
      b 、有body,在body 中查询指定的参数
              <c:redirect url=”value” [context=”context”]>
                     <c:param> subtags
              </c:redirect>
举例:c:redirect.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
 <title>JSTL:c:redirect的使用</title>
</head>
<body bgcolor="#cc99cc">
<c:url value="footer.jsp" var="nextpage"><c:param name="userName" value="hellking"/></c:url>
<c:redirect url="${nextpage}"/>
</body>
</html>


<c:url>
作用:用于构造URL,主要的用途是URL的重写。
语法:a、没有body的情况
              <c:url value=”value” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”]/>
      b 、有body ,并在body 中有重写的参数
              <c:url value=”value” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”]>
<c:param> subtags
</c:url>
举例:c_url.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
 <title>JSTL c:url 的使用</title>
</head>
<body bgcolor="#FFFFFF">
<c:url var="footer" value="footer.jsp" scope="page">
       <c:param name="id" value="hellking"/>
</c:url>
<c:out value="${footer}"/>
<br>另一种没有参数的URL<br>
<c:url value="footer.jsp"/>
</body>
</html>


<c:param>
作用:它是在<c:import>,<c:redirectt>,<c:url>中添加请求的参数。和一般的参数没什么区别。
语法:a、参数的值使用value属性指定
              <c:param name=”name” value=”value”/>
      b 、参数的值在body 中指定
              <c:param name=”name”>
                     参数值
              </c:param>
举例:c_param.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
 <title>JSTL c:param的使用</title>
</head>
<body bgcolor="#FFFFFF">


<c:redirect url="footer.jsp">
<c:param name="userName">
   hellking
</c:param>
</c:redirect>
</body>

</html>

 
JSTL详解(六)
                                 SQL 相关的标签

 

今天,我来讲解下一些很重要的jstl标签,如果运用得当,可以大大的简化数据库的操作,减少代码量。首先sql标签可以实现包括查询、更新、事务处理和设置数据源等强大的功能。下面分别讲述。
 
<sql:setDataSource>
<sql:query>
<sql:update>
<sql:transaction>
<sql:param>
 

 

<sql:setDataSource>
语法:<sql:setDataSource>用来设置数据源,可以通过scope设置使用范围, 如page、application、session等。有两种方式可以设置数据源,一种是直接使用在web中配置的数据源,只要指定jndi名就可以了 (这个就不要我多讲了吧,呵呵),第二种是指定所有的连接属性。
     <sql:setDataSource
     {dataSource=”dataSourceName” |   url=”jdbcurl”
     [driver=”driverClassName”]
     [user=”userName”]
     [password=”password”]
     [var=”varName”]
     [scope=”{page|session|request|application}”]/>
举例:sql_datasource.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
 <title>JSTL:<sql:setDataSource>的使用</title>
</head>
<body bgcolor="#FFFFFF">
创建普通的数据源:<br>
<sql:setDataSource
 var="ds1"
 driver="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost:3306/jstlTest"
 user="jstl"
 password="jstl"
/>
从jndi名称空间中获得一个数据源。<br>
<sql:setDataSource
 var="ds2"
 dataSource="jdbc/ds2"
/>
</body>
</html>

 

 

<sql:query>
作用:不用说都知道了,数据库操作中最频繁的查询。
语法:a、没有body
         <sql:query sql=”sqlQuery”
         Var=”varName” [scope=”{page|session|request|application}”]
         [dataSource=”dataSourceName”]
         [maxRows=”maxRows”]
         [startRow=”startRow”] />
      b 、有一个body ,并在body 中指定了查询需要的参数
         <sql:query sql=”sqlQuery”
         Var=”varName” [scope=”{page|session|request|application}”]
         [dataSource=”dataSourceName”]
         [maxRows=”maxRows”]
         [startRow=”startRow”] >
         <sql:param> actions
         </sql:query>
      c 、有body,并且可以指定可选的参数(< sql:param >在后面讲述)
         <sql:query sql=”sqlQuery”
         Var=”varName” [scope=”{page|session|request|application}”]
         [dataSource=”dataSourceName”]
         [maxRows=”maxRows”]
         [startRow=”startRow”] >
         query
         optional<sql:param> actions
         </sql:query>

 

举例:sql_query.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
 <title>JSTL:<sql:query>的使用</title>
</head>
<body bgcolor="#FFFFFF">
<sql:setDataSource
 var="ds2"
 dataSource="jdbc/ch12"
/>
第一种查询:<hr>
<sql:query var="query" dataSource="${ds2}">
    SELECT * FROM sql_test
</sql:query>
<table border="1">
 <c:forEach var="row" items="${query.rows}">
 <tr>
    <td>Name: <c:out value="${row.id}"/></td>
    <td>mobile: <c:out value="${row.power}"/></td>
 </tr>
 </c:forEach>
</table>
<hr>
第2种查询:<hr>
<sql:query var="query2" sql="SELECT * FROM sql_test where id=?" dataSource="${ds2}">
   <sql:param value="01"/>
</sql:query>
<table border="1">
 <c:forEach var="row" items="${query2.rows}">
 <tr>
    <td>Name: <c:out value="${row.id}"/></td>
   <td>mobile: <c:out value="${row.power}"/></td>
 </tr>
 </c:forEach>
</table>

 

</body>
</html>
 
JSTL详解 (七)
 
SQL相关的标签(二)
<sql:update>
作用:主要是执行插入、更新和删除操作的标签。另外,还有一些没有返回结果集的sql操作也可以使用这个标签。比如
create table tableName(id int….);
drop table tableName
grant tableName   等等。。
语法:a、没有body的情况
         <sql:update sql=”sqlUpdate”
[dataSource=”dataSource”]
[var=”varName”]
[scope=”{page|session|request|application}”]/>
      b 、有body ,并且在body中指定参数
         <sql:update sql=”sqlUpdate”
[dataSource=”dataSource”]
[var=”varName”]
[scope=”{page|session|request|application}”] >
<sql:param> actions
</sql:update>
      c 、有body,在body中指定sql语句和可选的参数
         <sql:update sql=”sqlUpdate”
[dataSource=”dataSource”]
[var=”varName”]
[scope=”{page|session|request|application}”] >
Update statement
<sql:param> actions
</sql:update>

 

举例:sql_update.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

 <title>JSTL:的使用</title>

</head>

<sql:setDataSource

 var="ds2"

 dataSource="jdbc/ch12"

/>

更新记录值1<hr>

<sql:update var="update1" dataSource="${ds2}">

    update sql_test set power='low' where id=01

</sql:update>

第2种更新:创建表<hr>

<sql:update var="update4" sql="create table sql_temp_901(test varchar(20))" dataSource="${ds2}"/>  

第3种更新:增加记录

<sql:update var="update5" sql="insert into sql_temp_901 values('hellking')" dataSource="${ds2}"/>

第4种更新:删除记录<hr>

<sql:update var="update6" sql="delete from sql_temp_901 where test='hellking'" dataSource="${ds2}"/>  

第5种更新:删除表<hr>

<sql:update var="update7" sql="drop table sql_temp_901" dataSource="${ds2}"/>

</body>

</html>

 

<sql:transaction>
作用:用语事务处理,它为<sql:query>和<sql:update>建立事务处理上下文,并且提供相同的数据源。
语法:<sql:transation [dataSource=”dataSourceName”]>
      [isolation=”isolationLevel”]>
      <sql:query> and <sql:update> statement
      </sql:transation>
      isolationLevel ::=”read_committed”
      |”read_uncommitted”
      |”repeatable_read”
      |”serializable”
注 意:DataSource属性和其他标签的DataSource属性一样,isolactionlevel属性指定事务隔离的级别,如果没有指定它的值, 那么就使用自己配置的DataSource事务隔离级别。而且,嵌套在里面的<sql:query> 和 <sql:update>标签不能再指定其他的数据源。<sql:transaction>
是数据库封装的轻量级事务处理,如果你需要复杂的事务处理或者分布试处理,它就不适合。
举例:sql_transaction.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

 <title>JSTL:sql:transaction的使用</title>

</head>

<sql:setDataSource

 var="ds2"

 dataSource="jdbc/ch12"

/>

<h2>使用事务处理方式创建一个表:</h2>

 

<sql:transaction dataSource="${ds2}">

 <sql:update var="test_temp902">

    create table test_temp902 (

      id int primary key,

      name varchar(80)

    )

 </sql:update>

 <sql:update sql="insert into test_temp902 values(01,'wyy')"/>

 <sql:update sql="update sql_test set power='wyy' where id=01"/>

</sql:transaction>

</body>

</html>

 

<sql:param>
作用:设置sql语句中“?”表示的占位符号的值。
语法:a、没有body,使用value指定。
         <sql:param value=”value”/>
      b 、在body中指定
         <sql:param>
         参数值
         </sql:param>
举例:sql_param.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

 <title>JSTL:sql:param的使用</title>

</head>

<sql:setDataSource

 var="example"

 dataSource="jdbc/ch12"

/>

 

执行更新操作:<hr>

<sql:update var="update2" sql="update sql_test set power=? where id=?" dataSource="${example}">

   <sql:param value="high"/>

   <sql:param value="01"/>

</sql:update>

</body>

</html>

分享到:
评论

相关推荐

    JSTL详解

    JavaServer Pages Standard Tag Library (JSTL) 是一套用于简化JSP开发的标签库,它提供了许多预定义的标签,让开发者能够以更简洁、更易于理解和维护的方式编写JSP页面。JSTL的主要目标是减少在JSP页面中使用脚本...

    JSTL详解 DOC文档 较全的JSTL标记说明

    ### JSTL详解 #### 一、JSTL简介与环境搭建 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是为简化和标准化 JavaServer Pages 开发而设计的一组标准标签。通过使用 JSTL,开发者...

    jstl标签详解jstl标签详解jstl标签详解

    在实际开发中,`JSTL_标签库详解(一个不漏).doc`和`JSTL核心标签库.doc`这样的文档是极有价值的参考资料,它们详细解释了每个标签的用法、属性以及示例,可以帮助开发者快速理解和掌握JSTL的使用。确保阅读并理解...

    JSTL详解---附源码

    **JSTL详解** JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一套用于处理常见JSP任务的标签,如迭代、条件判断、XML处理等,旨在减少在JSP页面中的脚本代码,提高页面的...

    EL JSTl详解word文档

    **JSTL (JavaServer Pages Standard Tag Library)** 是一套用于简化JSP开发的标签库,由Apache Jakarta组织维护,并遵循Sun公司的Java规范。它旨在提供一种标准的方式来处理常见的页面逻辑,减少在JSP中直接使用Java...

    Java版数据结构和IO结构图+JSTL详解

    本资料包涵盖了三个关键主题:Java数据结构、IO(输入/输出)结构图以及JSTL(JavaServer Pages Standard Tag Library)的详解,这些都是Java开发中的核心概念。下面将逐一深入探讨这些知识点。 首先,我们来谈谈...

    JSTL详解--Core 标签库介绍

    **JSTL详解--Core标签库介绍** JavaServer Pages(JSP)标准标记库(JSTL)是一个关键的工具,旨在减少JSP页面中的脚本元素,提高代码的可维护性和可读性。JSTL包含了一系列定制的标记库,用于实现常见的Web应用...

    JSTL详解--jsp页面编写规范详解

    ### JSTL详解—JSP页面编写规范 #### 概述 JSTL(JSP Standard Tag Library,JSP标准标签库)是一种被广泛应用于JavaServer Pages (JSP) 页面中的标准化标签库,旨在简化JSP页面开发过程,提高代码可读性和可维护...

    el与jstl详解

    - **引入必要的JAR包**:为了使用JSTL,需要在项目中添加`jstl-1.2.jar`和`standard.jar`两个JAR包。 - **定义标签库前缀**:在JSP页面顶部使用`&lt;%@ taglib %&gt;`指令定义JSTL的前缀。例如: ```jsp ...

    JSTL详解.pdf

    在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示 逻辑已经不是新技术了...鉴于此,出现了 JSTL(JSP Standard Tag Library)。大多数 JSP 页面逻辑 提供了实现的 JSTL 技术,该技术本身就是一个标签库。

    JSTL详解--标签库介绍.doc

    ### JSTL详解--标签库介绍 #### 一、引言 JSTL(JavaServer Pages Standard Tag Library),即JavaServer Pages标准标签库,是一种专为简化和增强JSP(JavaServer Pages)页面开发而设计的技术。通过提供一组预定...

    JSTL详解,一份很不错的JSTL学习文档

    **JSTL(JavaServer Pages Standard Tag Library)**是Java服务器端的一个标准标签库,它提供了一系列的标签来简化JSP页面的开发,使得开发者能够更专注于业务逻辑而不是底层的Java代码。本篇文档将深入讲解JSTL的核心...

    java jstl学习详解过程

    ### Java JSTL 学习详解过程 #### JSTL简介 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是一组由 Sun Microsystems 提供的标准标签库,它允许开发者在 JSP 页面中使用预定义的...

Global site tag (gtag.js) - Google Analytics