- 浏览: 123378 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
blissnmx:
插件的安装可以选择离线方式安装插件
javaRebel(jRebel)使用手记 -
所剩无几:
大神下面那个是什么意思。有木有图示的demo
eclipse Axis2 plugins UI issue OR ClassNotFound issue -
FX夜归人:
~~~~~~
多种XML解析方法 -
zbl6666:
...
网上搜来的Flex Builder3注册码 -
zbl6666:
...
网上搜来的Flex Builder3注册码
JSTL详解(一)
一般用途的标签
在JSTL中,一般用途的标签只要是指具有输出,设置变量,和错误处理等功能的标签,他们在jsp中使用很频繁,它们有:
l <c:out> 2 <c:set> 3 <c:remove> 4 <c:catch>
下面,我来讲述一下他们的作用:
<c:out>
它是一个输出的标签,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一样。没有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”]/>
有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” > 这里是BODY,可以是任何合法的jsp或者是html代码。 </c:out>
注意,escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释,见红色部分代码
举例:c_out.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:out的使用</title> </head> <body bgcolor="#FFFFFF"> <hr> <c:set var="sessionAttr" value="sessionValue" scope="session"/> <c:set var="pageAttr" value="pageValue" scope="page"/> <c:set var="requestAttr" value="requestValue" scope="request"/> <c:out value="以下输出的是前面设置的属性<br>" [color=red]escapeXml="false"[/color]/> <c:out value="${sessionAttr}"/> <c:out value="${pageAttr}"/> <c:out value="${requestAttr}"/> <c:out value="${test_nodef}" default="没有test_nodef这个变量"/> </html>
<c:set>
这个标签用于在某个范围(page,request,session,application)里面设置特定的值(默认为page),或者设置某个已经存在的javabean的属性。类似于<%request.setAttribute(“name”,value)%>
语法:
1、使用value属性设置一个特定范围里面的属性:
<c:set value=”value” var=”varName” [scope= “{page|request|session|application}”]/ >
2、使用value属性设置一个特定范围里面的属性,带有BODY:
<c:set value=”value” var=”varName” [scope= “{page|request|session|application}”] >
Body content
</c:set>
3、设置某个特定对象的一个属性:
<c:set value=”value” target=”target” property=”propertyName”/ >
4、设置某个特定对象的一个属性, 带有BODY:
<c:set value=”value” target=”target” property=”propertyName” >
Body content
</c:set>
举例:c_set.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html; charset=gb2312" language="java" %> <jsp:useBean id="user" class="com.j2ee14.ch12.User"/> <html> <head> <title>JSTL:的使用c:set</title> </head> <body bgcolor="#FFFFFF"> <hr> 设置一个属性,然后输出它<br> <c:set var="maxCount" value="100"/> <c:out value="${maxCount}"/> <hr>设置属性时,把它的值放在标签的body中。 <c:set var="password"> ksdjfxsdf234234 </c:set> <c:out value="${password}"/> <hr>设置javaBean的属性,然后输出这些属性值: <c:set value="hellking" target="${user}" property="userName"/> userName=<c:out value="${user.userName}"/> <hr>设置属性,并且指定它们的范围,属性的默认范围是page。 <c:set value="20" var="maxIdelTime" scope="session"/> <c:set value="next.jsp" var="nextPage" scope="page"/> </body> </html>
<c:remove>
它的作用是删除某个变量或者属性。类似于<%session.removeAttribute(“name”)%>,它的语法是:
<c:remove var=”varName” [scope= “{page|request|session|application}”]/ >
举例:c_remove.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:remove的使用</title> </head> <body bgcolor="#FFFFFF"> <c:set value="10000" var="maxUser" scope="application"/> <c:set value="10" var="count" scope="session"/> maxUser=<c:out value="${maxUser}"/><br> count=<c:out value="${count}"/> <hr>调用c:remove... <c:remove var="maxUser" scope="application"/> <c:remove var="count"/> 调用了c:remove后,参数值为: maxUser=<c:out value="${maxUser}"/>, count=<c:out value="${count}"/>, </body> </html>
JSTL详解(二)
<c:catch>
它的作用是捕捉由嵌套在它里面的标签所抛出来的异常。类似于<%try{}catch{}%>,它的语法是:
<c:catch [var=”varName”]>nested actions</c:catch>
举例:c_catch.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html; charset=gb2312" language="java" %> <html> <head> <title>JSTL:catch的使用</title> </head> <body bgcolor="#FFFFFF"> <c:catch var="error"> <% Integer.parseInt("sdkfj"); %> </c:catch> <hr>异常: <c:out value="${error}"/> <hr>异常 exception.getMessage= <c:out value="${error.message}"/> <hr> 异常exception.getCause= <c:out value="${error.cause}"/> </body> </html>
JSTL详解(三)
条件标签包括以下几种:
l <c:if>;
2 <c:choose>;
3 <c:when>;
4 <c:otherwise>;
下面,我来分别介绍:
l.<c:if>; 它用来做条件判断,功能类似jsp中的<%if(boolean){}%>
语法:
1、无body的情况
<c:if test=”testCondition” var=”varName” [scope=“{page|request|session|application}”]/>
2、有body的情况
<c:if test=”testCondition” var=”varName” [scope=“{page|request|session|application}”]>
Body内容
</c:if>
举例:c_if.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:if的使用</title> </head> <body bgcolor="#FFFFFF"> <c:set var="count" value="100"/> <c:if test="${count>78}"> count>78 </c:if> </body> </html>
2.<c:choose>; 它是用于条件选择,和<c:when>,<c:otherwise>一起使用,它的条件选择是排斥性的,相当于jsp中的<%switch(i){case 0: … case 1:… default :}%>,也可以完成<%if{}…else if{}….else if{} else{} %>的功能
语法:<c:choose>
Body内容(<c:when>,<c:otherwise>)
</c:choose>
注意:它的body内容只能是由以下的元素组成:
1.空格;
2.0个或多个<c:when>子标签,<c:when>必须在<c:otherwise>子标签之前出现;
3.0个或多个<c: otherwise >子标签
<c:when> 它是<c:choose>的一个分支
语法:
<c:when test=”testCondition”>
Body内容
</c:when>
注意:它有两个限制:
1.必须以<c:choose>作为它的父标签
2.必须在<c:otherwise>标签之前出现
<c:otherwise>他代表了<c:choose>的最后选择相当于jsp的<%switch(i){case 0: … case 1:… default :}%> 中的default语句。
语法:
<c:otherwise>
Conditional block
</c:otherwise>
它的使用有两个限制:
1.必须以<c:choose>作为它的父标签;
2.必须以<c:choose>的最后分支方式出现;
<c:choose>,<c:otherwise>,<c:when>
举例:c_choose.jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html; charset=gb2312" language="java" %> <c:set var="count" value="100"/> <html> <head> <title>JSTL:c:choose的使用</title> </head> <body bgcolor="#FFFFFF"> <c:choose> <c:when test="${count <=0}"> <font color="blue"> </c:when> <c:when test="${count<=60&&count>0}"> <font color="red"> </c:when> <c:otherwise> <font color="green"> </c:otherwise> </c:choose> count的值是:<c:out value="${count}"/> </font> </body> </html>
JSTL详解(四)
迭代标签的使用
如果使用scriptlets,那么,我们经常使用Iterator或者Enumeration来进行迭代,如:
Iterator it = collection.iterator();
while(it.hasNext()){
SomeBean someBean = (SomeBean)it.next();
out.println(someBean.getXXX());
…………..
}
在前面的一次中,我们开发过一个迭代标签,JSTL中也提供了对迭代进行支持的标签,并且,他的功能比上一章的强大的多。JSTL中的迭代标签有两个:
1.<c:forEach>;
2.<c:forTokens>;
1、<c:forTokens>专门处理TokenString的迭代,可以指定一个或者是多个分隔符。由于他们使用的很少,在这里就不介绍了。
2、<c:forEach>是最常用的,他几乎能够完成所有的迭代任务,就象jsp中的for(int i=j;i<k;i++)下面我来详细介绍。(注意,“[]”里面的是可选条件)
语法:a、在Collection中迭代:
<c:forEach [var=”varName”] items=”collection” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>
Body 内容
</c:forEach>
b、迭代固定的次数:
<c:forEach [var=”varName”] [varStatus=”varStatusName”] begin=”begin” end=”end” [step=”step”]>
Body 内容
</c:forEach>
举例:c_forEach1.jsp(在Collection中迭代) <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html; charset=gb2312" language="java" %> <%@ page import="java.util.*,com.j2ee14.ch12.User"%> <% Collection users_c=new ArrayList(); for(int i=0;i<3;i++) { User user=new User(); user.setUserName("foo"+i); user.setPassword("foo"+i); users_c.add(user); } session.setAttribute("users",users_c); %> <html> <head> <title>JSTL:c:forEach的使用之一</title> </head> <body bgcolor="#FFFFFF"><center> <h4>迭代某个collection中的元素。</h4> <table border=1> <tr><td>用户名</td><td>密码</td></tr> <c:forEach var="users" items="${users}"> <tr> <td><c:out value="${users.userName}"/></td> <td><c:out value="${users.password}"/></td> </tr> </c:forEach> </table> </center> </body> </html>
举例:c_forEach2.jsp(迭代固定的次数) <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html; charset=gb2312" language="java" %> <html> <head> <tcounttle>JSTL:c:forEach的使用之二</tcounttle> </head> <body bgcolor="#FFFFFF"><center> <h4>第二种迭代:50-60</h4> <c:forEach var="count" begin="50" end="60"> <c:out value="${count}"/> ** </c:forEach> <h4>第二种迭代:10 to 100,step=10</h4> <c:forEach var="count" begin="10" end="100" step="10"> <c:out value="${count}"/>** </c:forEach> </center> </body> </html>
JSTL详解(五)
首先,感谢大家的关注,下面我来继续讲解:URL相关的标签,他们的作用主要是负责页面的导航、重定向、资源的获得以及参数的传递等等,他们有:
1.<c:import>
2.<c:redirect>
3.<c:url>
4.<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详解(六) 格式化标签
<fmt: formatNumber value =”12.3” pattern=”.000”/>
将输出 12.300. 应用样式 ”.000”, 将使格式化后的小数部分有 3 位。不足 3 位将以 0 补齐。
<fmt:formatDate value=”<%=new java.util.Date() %>” type=”date” pattern="yyyy/M/d" />
格式化的结果是: 2007-5-27 .
<fmt:formatDate value=”<%=new java.util.Date() %>” type=”time” pattern="hh:mm:ss"/>
格式化的结果是: 9:25:11
<fmt:formatDate value=”<%=new java.util.Date() %>” type=”both” />
格式化的结果是: 2007-5-27 9:25:11
举例:详细的使用如下例 <c:set var="now" value="<%=new java.util.Date()%>" /> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="63%" id="AutoNumber2"> <tr> <td width="100%" colspan="2" bgcolor="#0000FF"> <p align="center"> <b><font color="#FFFFFF" size="4"> Formatting:<fmt:formatDate value="${now}" type="both" timeStyle="long" dateStyle="long" /> </font> </b> </p> </td> </tr> <tr> <td width="51%">formatDate type="time"</td> <td width="49%"> <fmt:formatDate type="time" value="${now}" /> </td> </tr> <tr> <td width="51%">type="date"</td> <td width="49%"><fmt:formatDate type="date" value="${now}" /></td> </tr> <tr> <td width="51%">type="both"</td> <td width="49%"><fmt:formatDate type="both" value="${now}" /></td> </tr> <tr> <td width="51%">type="both" dateStyle="default" timeStyle="default"</td> <td width="49%"> <fmt:formatDate type="both" dateStyle="default" timeStyle="default" value="${now}" /> </td> </tr> <tr> <td width="51%">type="both" dateStyle="short" timeStyle="short"</td> <td width="49%"> <fmt:formatDate type="both" dateStyle="short" timeStyle="short" value="${now}" /> </td> </tr> <tr> <td width="51%">type="both" dateStyle="medium" timeStyle="medium"</td> <td width="49%"> <fmt:formatDate type="both" dateStyle="medium" timeStyle="medium" value="${now}" /> </td> </tr> <tr> <td width="51%">type="both" dateStyle="long" timeStyle="long"</td> <td width="49%"> <fmt:formatDate type="both" dateStyle="long" timeStyle="long" value="${now}" /> </td> </tr> <tr> <td width="51%">type="both" dateStyle="full" timeStyle="full"</td> <td width="49%"> <fmt:formatDate type="both" dateStyle="full" timeStyle="full" value="${now}" /> </td> </tr> <tr> <td width="51%">pattern="yyyy-MM-dd"</td> <td width="49%"><fmt:formatDate pattern="yyyy-MM-dd" value="${now}" /></td> </tr> </table>
补充知识点:
1. 替换 request.getParameter("test"):
<c:if test="${param.test!=null}" >
<c:out value="${param.test}" />
</c:if>
2. <c:redirect url="a.jsp">
3.<c:redirect url="/max.jsp" context="/ch16">
<c:param name="name1" value="665"/>
<c:param name="name3" value=" 斯蒂芬 "/>
</c:redirect>
4.<c:forTokens items="zhangsan:lisi:as" delims=":" var="name">
${name}
</c:forTokens>
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详解(九) fn标签使用说明
在jsp页面上经常遇到得到集合长度、字符长度、字符切取等应用需,在2.0以前这种需是许多程序员对JSTL及为不满意的地方之一。为此在2.0 中添加了functions标签,其提供对以上需求的支持。
使用方法 引用<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
函数说明:
函数 | 描述 |
fn:contains(string, substring) | 如果参数string中包含参数substring,返回true |
fn:containsIgnoreCase(string, substring) | 如果参数string中包含参数substring(忽略大小写),返回true |
fn:endsWith(string, suffix) | 如果参数 string 以参数suffix结尾,返回true |
fn:escapeXml(string) | 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回 |
fn:indexOf(string, substring) | 返回参数substring在参数string中第一次出现的位置 |
fn:join(array, separator) | 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。 |
fn:length(item) | 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。 |
fn:replace(string, before, after) | 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果 |
fn:split(string, separator) | 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素 |
fn:startsWith(string, prefix) | 如果参数string以参数prefix开头,返回true |
fn:substring(string, begin, end) | 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符 |
fn:substringAfter(string, substring) | 返回参数substring在参数string中后面的那一部分字符串 |
fn:substringBefore(string, substring) | 返回参数substring在参数string中前面的那一部分字符串 |
fn:toLowerCase(string) | 将参数string所有的字符变为小写,并将其返回 |
fn:toUpperCase(string) | 将参数string所有的字符变为大写,并将其返回 |
fn:trim(string) | 去除参数string 首尾的空格,并将其返回 |
例:邮箱省略显示 如smile2008@163.com --->显示成sm******@163.com
${fn:substring(userinfo.email,0,2)}******${fn:substring(userinfo.email,fn:indexOf(userinfo.email, '@'),fn:length(userinfo.email))}
发表评论
-
tomcat配置调优与安全总结
2017-05-25 14:50 516tomcat配置调优与安全总结 http://vek ... -
JAVA获取mac地址和cpu id
2014-03-13 17:36 5606JAVA获取mac地址和cpu id(windows和linu ... -
一个很好的免费电子书网站
2013-02-16 15:04 987一个很好的免费电子书网站,不用注册,直接下载 http://w ... -
Java串口通信详解
2009-04-23 10:44 1571序言 说到开源,恐怕很少有人不挑大指称赞。学生通过开源代 ... -
Oracle listener.log 不断增大的问题解决
2009-03-23 22:32 9176我们的目的是:不影响生产系统,移除并重新生成listener. ... -
转帖:09年中国软件企业最应该投资的5大技术
2009-02-10 13:49 900最近电影 ... -
一个批处理备份ORACLE数据库的程序
2008-12-09 22:01 2202一个批处理备份ORACLE数据库的程序,还使用了WINRAR进 ... -
网上搜来的Flex Builder3注册码
2008-11-21 19:43 5167Flex Builder3正式版下载+注册码 adobe公 ... -
JAXP 专述--专家的讲解
2007-08-21 17:48 1311这是篇细探 JAXP,Sun 的 Java API fo ... -
多种XML解析方法
2007-08-21 15:46 7479本文介绍了各种解析方法,着重分析了各自的优缺点: 解析的重要 ...
相关推荐
jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2,jstl-api-1.2和jstl-impl-1.2
**JSTL(JavaServer Pages Standard Tag Library)** 是一个标准的标签库,用于简化JavaServer Pages(JSP)开发。它提供了许多预定义的标签,使得开发者可以更方便地处理常见任务,如控制流、迭代、XML处理等,而...
jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2.jar下载jstl-1.2...
开发者在编写JSP页面时,会引用这个API来使用JSTL提供的各种标签。例如,`<c:forEach>`、`<fmt:formatDate>`等,这些都是通过API接口实现的。 2. **jstl-impl-1.2.jar**: 这个jar文件是JSTL的具体实现,包含了JSTL ...
开发人员在编写JSP页面时需要导入这个包,以便使用JSTL提供的各种标签。这个包不包含实际的实现,而是为编译时类型检查和依赖管理提供接口定义。 2. **jstl-impl-1.2.jar**:这是JSTL的实现库,包含了实现JSTL API...
**JSTL详解** JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一套用于处理常见JSP任务的标签,如迭代、条件判断、XML处理等,旨在减少在JSP页面中的脚本代码,提高页面的...
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config,以上错误可以使用以下策略试试,tomcat的lib文件夹下加入:jstl-1.2.jar、jstl-api-1.2.jar、jstl-impl-1.2.jar三个包。
之前的版本需要在服务器中配置一下,而且它分成了两个jar(jstl.jar和standard.jar)还有一个tld文件,而1.2已经不用配置了,直接把javax.servlet.jsp.jstl-1.2.1.jar和javax.servlet.jsp.jstl-api-1.2.1.jar两个jar...
jstl-api-1.2、jstl-impl-1.2.jar标签包,两份。
标题中的"jstl-impl-1.2.jar.rar"是一个压缩文件,它包含了"jstl-impl-1.2.jar"这个JAR包,这通常与Java Web开发相关,特别是与JSP(JavaServer Pages)技术紧密相连。JSTL(JavaServer Pages Standard Tag Library...
**JSTL详解--Core标签库介绍** JavaServer Pages(JSP)标准标记库(JSTL)是一个关键的工具,旨在减少JSP页面中的脚本元素,提高代码的可维护性和可读性。JSTL包含了一系列定制的标记库,用于实现常见的Web应用...
### JSTL详解—JSP页面编写规范 #### 概述 JSTL(JSP Standard Tag Library,JSP标准标签库)是一种被广泛应用于JavaServer Pages (JSP) 页面中的标准化标签库,旨在简化JSP页面开发过程,提高代码可读性和可维护...
包含了两个版本jstl文件,standard.jar和jstl-api-1.2.jar是一个版本,导入时需要将两个都导入,jstl-1.2.jar是高版本的,是将低版本的两个文件合成一个了,故只需要导入一个文件即可,导入的同时在jsp文件首行写入 ...
在Java Web开发中,JSTL(JavaServer Pages ...总的来说,这个压缩包提供的四个jar文件是构建JSP应用程序,特别是使用JSTL进行页面逻辑处理的关键组件。正确地配置和使用这些库,能够显著提升Web应用的开发效率和质量。
jstl-impl-1.2.2.jar!
### JSTL详解--标签库介绍 #### 一、引言 JSTL(JavaServer Pages Standard Tag Library),即JavaServer Pages标准标签库,是一种专为简化和增强JSP(JavaServer Pages)页面开发而设计的技术。通过提供一组预定...
Tomcat启动报错 java.lang.ClassNotFoundException: org.apache.jsp.index_jsp,检查你的项目中是否存在jsp-api.jar,jstl-api.jar,servlet-api.jar。
**JSTL(JavaServer Pages Standard Tag Library)API 1.2详解** JSTL,全称为JavaServer Pages Standard Tag Library,是Java EE平台中一个用于简化JSP开发的库,它提供了一系列预定义的标签,帮助开发者在JSP页面...
**JSTL(JavaServer Pages Standard Tag Library)** 是一个...`jstl-api-1.2.jar` 和 `jstl-impl-1.2.jar` 这两个jar文件确保了JSTL 1.2在项目中的正确使用和运行。在部署Web应用时,务必将其添加到项目的类路径中。