CSDN博客

img yangaoquan

JSTL学习笔记

发表于2008/9/29 14:25:00  293人阅读

<jsp:useBean id="cartoon" scope="page" class="com.ora.CartoonBean">
    <img src="<jsp:getProperty name="cartoon" property="filename" />">

<jsp:useBean id="msg" class=""></jsp:useBean>
    <jsp:setProperty name="msg" property="category" value="thoughts" />
    使用<c:set>动作
    <c:set target="${msg}" property="category" value="thoughts" />

使用JSTL动作访问参数值
    <input type="text" name="userName">
    <input type="checkbox" name="food" value="z">
    <input type="checkbox" name="food" value="b">
    <input type="checkbox" name="food" value="c">
    打印相关变量值:
    <c:out value="${param.userName}">  
    <c:forEach items="${paramValues.food}" var="current">
        <c:out value="${current}" />
    </c:forEach>
<c:out value="${username}" />
相当于JSP语句<%=request.getAttribute(“username”)%>
      <%=session.getAttribute(“username”)%>
${user["username"]} 与 ${user. username}含义相同
${empty param.username} 与 ${param.firstname == null}含义相同
如果request的参数列表中的username值为null,则表达式的值为true
   <%@ page session="false" %>
   <jsp:useBean id = "current" class ="java.util.Date" />
   <fmt:formatDate value = " ${current}" /> <br>
   <fmt:formatDate value = " ${current}" type="both" /> <br>
   <fmt:formatDate value = " ${current}"
         pattern = " yyyy'年'MM'月'dd'日' hh'时'mm'分'ss'秒' a EEEE " />  
  执行结果 :
  2006 - 12 - 15  
  2006 - 12 - 15   11 : 41 : 18  
  2006年12月15日 11时41分18秒 上午 星期五  

JSTL核心标签库支持使用<c:import>来包含文件,使用<c:url>来打印和格式化URL,使用<c:redirect>来重定向URL。

JSTL包含以下的标签:
   常用的标签:如 :  < c:out > 、< c:remove > 、< c: catch > 、< c:set > 等
   条件标签:如 < c: if >、< c:when > 、< c:choose > 、< c:otherwise > 等
   URL标签:如 < c: import > 、 < c:redirect > 和 < c:url > 等
   XML标签:如 < xml:out > 等
   国际化输出标签:如 < fmt:timeZone > 等
   SQL标签:如 < sql:query > 、 < sql:update > 、 < sql:transaction > 等
----------------------------------------------------------
    JSTL <c:out>的属性
    value:必要。增加至响应的值。
    escapeXml:Boolean:可选,如果值中的特殊字符应当轮换为字符实体码,
    则为true,默认为true。
    Default:可选,value属性为null时所用的值,也可以由体定义。
-----------------------------------------------------------
    JSTL <c:set>的属性
    value 要保存的信息,可以是EL表达式或常量
    target 需要修改属性的变量名,一般为javabean的实例
    property 需要修改的javabean属性
    var 需要保存信息的变量
    scope 保存信息的变量的范围,缺省值page
c:set标签有两种不同的设置:var和target。
1.如果“target”是一个Map, “property”指定的是该Map的一个键;
  如果“target”是一个bean,“property”指定的是该bean的一个成员字段。
2.不能同时有“var”和“target”属性
3.如果指定了target属性, 那么property属性也必须指定。
<c:set target="${cust.address}" property="city" value="${city}"/>
<c:set value="${test.testinfo}" var="test2" scope="session"/>
将test.testinfo的值保存到session的test2中,
其中test是一个javabean的实例,testinfo是test对象的属性
-----------------------------------------------------------
    <c:remove>
    var 要删除的变量 ,必要。
    scope 被删除变量的范围,包括page、request、session、application等
<c:remove var="test2" scope="session"/> 从session中删除test2变量
-----------------------------------------------------------
    <c:catch>
    这个标签相当于捕获在它里边的标签抛出的异常对象
<c: catch [var="varName"]>   // var是异常的名字  
    内容
</c:catch>  
-----------------------------------------------------------
    JSTL <c:forEach>属性
    items:可选,如果指定,则完全循环,否则,就要指定begin和end。
    var:可选,保存当前元素值的变量的名
    varStatus:可选,保存一个LoopTagStatus对像的变量的名
    begin:可选,第一个索引(从0开始)
    end:可选,最后一个索引
    step:可选,每次迭代时的索引增量,默认值1。
<c:forEach items="${vectors}" var="vector">
    <c:out value="${vector}"/>
</c:forEach>
for(int i=0;i<vectors.size();i++) {
    out.println(vectors.get(i));
}
-----------------------------------------------------------
<c:if test="${user.wealthy}">
user.wealthy is true.
</c:if>
如果user.wealthy值true,则显示user.wealthy is true.
-----------------------------------------------------------
<c:choose>
    <c:when test="${user.generous}">
         user.generous is true.
    </c:when>
    <c:when test="${user.stingy}">
user.stingy is true.
    </c:when>
    <c:otherwise>
user.generous and user.stingy are false.
    </c:otherwise>
</c:choose>
只有当条件user.generous返回值是true时,才显示user.generous is true.
只有当条件user.stingy返回值是true时,才显示user.stingy is true.
其它所有的情况(即user.generous和user.stingy的值都不为true)
全部显示user.generous and user.stingy are false
<c:choose>和<c:otherwise> 这两个标签不接受任何属性
<c:if>
test 需要评价的条件,相当于if (...){}语句中的条件,必要。
var 要求保存条件结果的变量名
scope 保存条件结果的变量范围,默认值:page
<c:when>
test 需要评价的条件,必要。
---------------------------------------------------------
<c:forTokens>
items 进行循环的项目,必要。
delims 分割符,必要。
begin 开始条件 默认值:0
end 结束条件
step 步长 默认值:1
var 代表当前项目的变量名
varStatus 显示循环状态的变量
<c:forTokens items="a:b:c:d" delims=":" var="token">
    <c:out value="${token}"/>
</c:forTokens>
--------------------------------------------------------
<c:import>
url 需要导入页面的url ,必要。
context /后跟本地web应用程序的名字
charEncoding 用于导入数据的字符集   默认值:ISO-8859-1
var 接受导入文本的变量名   默认值:page
scope 接受导入文本的变量的变量范围    默认值:1
varReader 用于接受导入文本的java.io.Reader变量名
varStatus 显示循环状态的变量
<c:import url="http://www.url.com/edit.js" var="newsfeed"/>
http://www.url.com/edit.js包含到当前页的当前位置,并将url保存到newsfeed变量中
---------------------------------------------------------
<c:url>
url url地址,必要。
context /后跟本地web应用程序的名字
charEncoding 用于导入数据的字符集    默认值:ISO-8859-1
var 接受处理过的url变量名,该变量存储url
scope 存储url的变量名的变量范围 默认值:page
<a href="<c:url url="/index.jsp"/>"/>
---------------------------------------------------------
<c:redirect>
url url地址,必要。
context /后跟本地web应用程序的名字
<c:redirect url="http://www.yourname.com/login.jsp"/>
相当于response.setRedirect("http://www.yourname.com/login.jsp");
---------------------------------------------------------
<c:param>
name 在request参数中设置的变量名,必要。
value 在request参数中设置的变量值
<c:redirect url="login.jsp">
    <c:param name="id" value="888"/>
</c:redirect>
将参数888以id为名字传递到login.jsp页面,相当于login.jsp?id=888
-----------------------------------------------------------
SQL相关的标签
1.<sql:setDataSource>
2.<sql:query>
3.<sql:update>
4.<transaction>
5.<param>
----------------------------------------------------------
0 0

相关博文

我的热门文章

img
取 消
img