一般用途的标签 在JSTL中,一般用途的标签只要是指具有输出,设置变量,和错误处理等功能的标签,他们在jsp中使用很频繁,它们有: l <c:out> l <c:set> l <c:remove> l <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>" escapeXml="false"/> <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> <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> 好了,今天先讲到这里,有疑问或者指正的可以留言,谢谢。。

评论