JSTL详解


JSTL详解(一)
一般用途的标签

在JSTL中,一般用途的标签只要是指具有输出,设置变量,和错误处理等功能的标签,他们在jsp中使用很频繁,它们有:

Java代码 复制代码
  1. l<c:out>
  2. 2<c:set>
  3. 3<c:remove>
  4. 4<c:catch>

下面,我来讲述一下他们的作用:

<c:out>
它是一个输出的标签,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一样。没有BODY的时候,使用下面的语法:
Java代码 复制代码
  1. <c:outvalue=”value”[escapeXml]=”{true|false}”[default=”defaultValue”]/>
<c:out value=”value”  [escapeXml]=”{true|false}”  [default=”defaultValue”]/>

有BODY的时候,使用下面的语法:
Java代码 复制代码
  1. <c:outvalue=”value”[escapeXml]=”{true|false}”>
  2. 这里是BODY,可以是任何合法的jsp或者是html代码。
  3. </c:out>
<c:out value=”value”  [escapeXml]=”{true|false}” >
       这里是BODY,可以是任何合法的jsp或者是html代码。
</c:out>

注意,escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释,见红色部分代码
Java代码 复制代码
  1. 举例:c_out.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTL:c:out的使用</title>
  7. </head>
  8. <bodybgcolor="#FFFFFF">
  9. <hr>
  10. <c:setvar="sessionAttr"value="sessionValue"scope="session"/>
  11. <c:setvar="pageAttr"value="pageValue"scope="page"/>
  12. <c:setvar="requestAttr"value="requestValue"scope="request"/>
  13. <c:outvalue="以下输出的是前面设置的属性<br>"[color=red]escapeXml="false"[/color]/>
  14. <c:outvalue="${sessionAttr}"/>
  15. <c:outvalue="${pageAttr}"/>
  16. <c:outvalue="${requestAttr}"/>
  17. <c:outvalue="${test_nodef}"default="没有test_nodef这个变量"/>
  18. </html>
举例: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>
Java代码 复制代码
  1. 举例:c_set.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <jsp:useBeanid="user"class="com.j2ee14.ch12.User"/>
  5. <html>
  6. <head>
  7. <title>JSTL:的使用c:set</title>
  8. </head>
  9. <bodybgcolor="#FFFFFF">
  10. <hr>
  11. 设置一个属性,然后输出它<br>
  12. <c:setvar="maxCount"value="100"/>
  13. <c:outvalue="${maxCount}"/>
  14. <hr>设置属性时,把它的值放在标签的body中。
  15. <c:setvar="password">
  16. ksdjfxsdf234234
  17. </c:set>
  18. <c:outvalue="${password}"/>
  19. <hr>设置javaBean的属性,然后输出这些属性值:
  20. <c:setvalue="hellking"target="${user}"property="userName"/>
  21. userName=<c:outvalue="${user.userName}"/>
  22. <hr>设置属性,并且指定它们的范围,属性的默认范围是page。
  23. <c:setvalue="20"var="maxIdelTime"scope="session"/>
  24. <c:setvalue="next.jsp"var="nextPage"scope="page"/>
  25. </body>
  26. </html>
举例: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}”]/ >
Java代码 复制代码
  1. 举例:c_remove.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTL:c:remove的使用</title>
  7. </head>
  8. <bodybgcolor="#FFFFFF">
  9. <c:setvalue="10000"var="maxUser"scope="application"/>
  10. <c:setvalue="10"var="count"scope="session"/>
  11. maxUser=<c:outvalue="${maxUser}"/><br>
  12. count=<c:outvalue="${count}"/>
  13. <hr>调用c:remove...
  14. <c:removevar="maxUser"scope="application"/>
  15. <c:removevar="count"/>
  16. 调用了c:remove后,参数值为:
  17. maxUser=<c:outvalue="${maxUser}"/>,
  18. count=<c:outvalue="${count}"/>,
  19. </body>
  20. </html>
举例: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>

Java代码 复制代码
  1. 举例:c_catch.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTL:catch的使用</title>
  7. </head>
  8. <bodybgcolor="#FFFFFF">
  9. <c:catchvar="error">
  10. <%
  11. Integer.parseInt("sdkfj");
  12. %>
  13. </c:catch>
  14. <hr>异常:
  15. <c:outvalue="${error}"/>
  16. <hr>异常exception.getMessage=
  17. <c:outvalue="${error.message}"/>
  18. <hr>异常exception.getCause=
  19. <c:outvalue="${error.cause}"/>
  20. </body>
  21. </html>
举例: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>

Java代码 复制代码
  1. 举例:c_if.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTL:c:if的使用</title>
  7. </head>
  8. <bodybgcolor="#FFFFFF">
  9. <c:setvar="count"value="100"/>
  10. <c:iftest="${count>78}">
  11. count>78
  12. </c:if>
  13. </body>
  14. </html>
举例: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>
Java代码 复制代码
  1. 举例:c_choose.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <c:setvar="count"value="100"/>
  5. <html>
  6. <head>
  7. <title>JSTL:c:choose的使用</title>
  8. </head>
  9. <bodybgcolor="#FFFFFF">
  10. <c:choose>
  11. <c:whentest="${count<=0}">
  12. <fontcolor="blue">
  13. </c:when>
  14. <c:whentest="${count<=60&&count>0}">
  15. <fontcolor="red">
  16. </c:when>
  17. <c:otherwise>
  18. <fontcolor="green">
  19. </c:otherwise>
  20. </c:choose>
  21. count的值是:<c:outvalue="${count}"/>
  22. </font>
  23. </body>
  24. </html>
举例: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>

Java代码 复制代码
  1. 举例:c_forEach1.jsp(在Collection中迭代)
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <%@pageimport="java.util.*,com.j2ee14.ch12.User"%>
  5. <%
  6. Collectionusers_c=newArrayList();
  7. for(inti=0;i<3;i++)
  8. {
  9. Useruser=newUser();
  10. user.setUserName("foo"+i);
  11. user.setPassword("foo"+i);
  12. users_c.add(user);
  13. }
  14. session.setAttribute("users",users_c);
  15. %>
  16. <html>
  17. <head>
  18. <title>JSTL:c:forEach的使用之一</title>
  19. </head>
  20. <bodybgcolor="#FFFFFF"><center>
  21. <h4>迭代某个collection中的元素。</h4>
  22. <tableborder=1>
  23. <tr><td>用户名</td><td>密码</td></tr>
  24. <c:forEachvar="users"items="${users}">
  25. <tr>
  26. <td><c:outvalue="${users.userName}"/></td>
  27. <td><c:outvalue="${users.password}"/></td>
  28. </tr>
  29. </c:forEach>
  30. </table>
  31. </center>
  32. </body>
  33. </html>
举例: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>



Java代码 复制代码
  1. 举例:c_forEach2.jsp(迭代固定的次数)
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <tcounttle>JSTL:c:forEach的使用之二</tcounttle>
  7. </head>
  8. <bodybgcolor="#FFFFFF"><center>
  9. <h4>第二种迭代:5060</h4>
  10. <c:forEachvar="count"begin="50"end="60">
  11. <c:outvalue="${count}"/>**
  12. </c:forEach>
  13. <h4>第二种迭代:10to100,step=10</h4>
  14. <c:forEachvar="count"begin="10"end="100"step="10">
  15. <c:outvalue="${count}"/>**
  16. </c:forEach>
  17. </center>
  18. </body>
  19. </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>

Java代码 复制代码
  1. 举例:c_import.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTL:c:import的使用</title>
  7. </head>
  8. <bodybgcolor="#FFFFFF">
  9. <h3>绝对路径URL</h3>
  10. <blockquote>
  11. <ex:escapeHtml>
  12. <c:importurl="http://127.0.0.1:8080/ch12/footer.jsp"/>
  13. </ex:escapeHtml>
  14. </blockquote>
  15. <h3>相对路径并且传递参数到指定的URL</h3>
  16. <blockquote>
  17. <c:importurl="footer.jsp"charEncoding="gb2312">
  18. <c:paramname="userName"value="hellking"/>
  19. </c:import>
  20. </blockquote>
  21. </body>
  22. </html>
举例: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>
Java代码 复制代码
  1. 举例:c:redirect.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTL:c:redirect的使用</title>
  7. </head>
  8. <bodybgcolor="#cc99cc">
  9. <c:urlvalue="footer.jsp"var="nextpage">
  10. <c:paramname="userName"value="hellking"/>
  11. </c:url>
  12. <c:redirecturl="${nextpage}"/>
  13. </body>
  14. </html>
举例: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>

Java代码 复制代码
  1. 举例:c_url.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTLc:url的使用</title>
  7. </head>
  8. <bodybgcolor="#FFFFFF">
  9. <c:urlvar="footer"value="footer.jsp"scope="page">
  10. <c:paramname="id"value="hellking"/>
  11. </c:url>
  12. <c:outvalue="${footer}"/>
  13. <br>另一种没有参数的URL<br>
  14. <c:urlvalue="footer.jsp"/>
  15. </body>
  16. </html>
举例: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>

Java代码 复制代码
  1. 举例:c_param.jsp
  2. <%@taglibprefix="c"uri="http://java.sun.com/jstl/core"%>
  3. <%@pagecontentType="text/html;charset=gb2312"language="java"%>
  4. <html>
  5. <head>
  6. <title>JSTLc:param的使用</title>
  7. </head>
  8. <bodybgcolor="#FFFFFF">
  9. <c:redirecturl="footer.jsp">
  10. <c:paramname="userName">
  11. hellking
  12. </c:param>
  13. </c:redirect>
  14. </body>
  15. </html>
举例: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
Java代码 复制代码
  1. 举例:详细的使用如下例
  2. <c:setvar="now"value="<%=newjava.util.Date()%>"/>
  3. <tableborder="1"cellpadding="0"cellspacing="0"
  4. style="border-collapse:collapse"bordercolor="#111111"width="63%"id="AutoNumber2">
  5. <tr>
  6. <tdwidth="100%"colspan="2"bgcolor="#0000FF">
  7. <palign="center">
  8. <b><fontcolor="#FFFFFF"size="4">
  9. Formatting:<fmt:formatDatevalue="${now}"type="both"timeStyle="long"dateStyle="long"/>
  10. </font>
  11. </b>
  12. </p>
  13. </td>
  14. </tr>
  15. <tr>
  16. <tdwidth="51%">formatDatetype="time"</td>
  17. <tdwidth="49%">
  18. <fmt:formatDatetype="time"value="${now}"/>
  19. </td>
  20. </tr>
  21. <tr>
  22. <tdwidth="51%">type="date"</td>
  23. <tdwidth="49%"><fmt:formatDatetype="date"value="${now}"/></td>
  24. </tr>
  25. <tr>
  26. <tdwidth="51%">type="both"</td>
  27. <tdwidth="49%"><fmt:formatDatetype="both"value="${now}"/></td>
  28. </tr>
  29. <tr>
  30. <tdwidth="51%">type="both"dateStyle="default"timeStyle="default"</td>
  31. <tdwidth="49%">
  32. <fmt:formatDatetype="both"dateStyle="default"timeStyle="default"value="${now}"/>
  33. </td>
  34. </tr>
  35. <tr>
  36. <tdwidth="51%">type="both"dateStyle="short"timeStyle="short"</td>
  37. <tdwidth="49%">
  38. <fmt:formatDatetype="both"dateStyle="short"timeStyle="short"value="${now}"/>
  39. </td>
  40. </tr>
  41. <tr>
  42. <tdwidth="51%">type="both"dateStyle="medium"timeStyle="medium"</td>
  43. <tdwidth="49%">
  44. <fmt:formatDatetype="both"dateStyle="medium"timeStyle="medium"value="${now}"/>
  45. </td>
  46. </tr>
  47. <tr>
  48. <tdwidth="51%">type="both"dateStyle="long"timeStyle="long"</td>
  49. <tdwidth="49%">
  50. <fmt:formatDatetype="both"dateStyle="long"timeStyle="long"value="${now}"/>
  51. </td>
  52. </tr>
  53. <tr>
  54. <tdwidth="51%">type="both"dateStyle="full"timeStyle="full"</td>
  55. <tdwidth="49%">
  56. <fmt:formatDatetype="both"dateStyle="full"timeStyle="full"value="${now}"/>
  57. </td>
  58. </tr>
  59. <tr>
  60. <tdwidth="51%">pattern="yyyy-MM-dd"</td>
  61. <tdwidth="49%"><fmt:formatDatepattern="yyyy-MM-dd"value="${now}"/></td>
  62. </tr>
  63. </table>
举例:详细的使用如下例
<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>
        <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值