[JSTL笔记]—c标签

6 篇文章 0 订阅
5 篇文章 0 订阅

记录一下JSTL的c标签内容,不是很全。

导入Taglib伪指令
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
1、输出

语法:

<c:out value="expression" default="expresion" escapeXml="boolean"/>

说明:

输出value中的值,如果value中的值为null或者空的String,会默认输出default中的值。escapeXml是可选参数,表示当用 <c:out>标记输出诸如“<”、“>”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成&lt;、&gt; 和 &amp;)。

例:

<c:out value="${user.company}" escapeXml=="false"/>

2、赋值

语法:

<c:set var="name" scope="scope" value="expression"/>

说明:

使用标记来创建变量并限制了变量的作用域。var属性指定名称,scope属性表明该变量的作用域,value属性指定变量的值。如果该变量已经存在就简单的赋值,如果不存在就创建赋值,并指定作用域。scope属性是可选的,其缺省值是page。

例:

<c:set var="timezone" scope="session" value="CST"/>  
<c:set var="square" value="${param['x'] * param['x']}"/>
3、循环

语法:

<c:forEach var="name" items="expression" varStatus="name" begin="expresion" end="expression" step="expression">
    body content
</c:forEach>

说明:

begin和end属性要么是静态整数值,要么是可以得出整数的表达式。分别代表迭代索引的初始值和终止值。当使用<c:forEach>在整数范围内进行迭代时,这两个属性是必需的,而其他所有属性都是可选的。
step也是可选的,表示每次迭代索引的增量。
如果指定了var属性,将会创建一个带有指定名称的并有作用域的变量,每次迭代的当前索引值赋给该变量。
items属性的值应该是一个集合,对给集合的成员进行迭代。通常使用EL表达式指定值。
和var属性一样,varstatus用于创建限定了作用域的变量。不过,由varstatus属性命名的变量并不存储当前索引值或当前元素,而是赋值javax.servlet.jsp.jstl.core.LoopTagStatus 类的实例。

例:

<table>  
  <c:forEach items=  
    "${entryList}" var="blogEntry" varStatus="status">  
    <tr><td align="left" class="blogTitle">  
      <c:out value="${status.count}"/>.  
      <c:out value="${blogEntry.title}" escapeXml="false"/>  
    </td></tr>  
    <tr><td align="left" class="blogText">  
      <c:out value="${blogEntry.text}" escapeXml="false"/>  
    </td></tr>  
  </c:forEach>  
</table>  
4、If判断

语法:

<c:if test="expression" var="name" scope="scope">
    body content
</c:if>

说明:

对test属性的表达式进行求值,只有为真,才执行主体内容。可指定将测试结果赋值给可选属性var指定的变量,可选属性scope指定变量的作用域。

例:

<c:if test="${status.first}">  
   <tr><td align="left" class="blogDate">  
        <c:out value="${blogEntry.created}"/>  
   </td></tr>  
</c:if> 
5、Choose操作

语法:

<c:choose>  
    <c:when test="expression">  
        body content  
    </c:when>  
        ...  
    <c:otherwise>  
        body content  
    </c:otherwise>  
</c:choose>

说明:

相当于java中的switch语句,每个测试的条件都要由<c:when>来标记,可以有多个,但是只会处理其中test属性标记为true的<c:when>中的主体内容。如果没有一个<c:when>测试返回true,那么会处理<c:otherwise>标记的主体内容。

例:

<c:choose>  
  <c:when test="${pageContext.request.scheme eq 'http'}">  
    This is an insecure Web session.  
  </c:when>  
  <c:when test="${pageContext.request.scheme eq 'https'}">  
    This is a secure Web session.  
  </c:when>  
  <c:otherwise>  
    You are using an unrecognized Web protocol. How did this happen?!  
  </c:otherwise>  
</c:choose>
6、url操作

语法:

<c:url value="expression" context="expression" var="name" scope="scope">
    <c:param name="expression" value="expression"/>
</c:url>

说明:

<c:url>用于生成url。value属性用来指定基本url,然后在必要时对其进行转换。如果这个基本URL以一个斜杠开始,那么会在它前面加上servlet的上下文名称。可以使用context属性提供显式的上下文名称。如果省略该属性,那么就使用当前servlet上下文的名称。这一点特别有用,因为servlet上下文名称是在部署期间而不是开发期间决定的。(如果这个基本URL不是以斜杠开始的,那么就认为它是一个相对URL,这时就不必添加上下文名称。)
如果通过嵌套<c:param>标记指定了任何请求参数,那么将会使用HTTP GET请求的标准表示法将它们的名称和值添加到生成的URL后面。此外,还进行URL编码:为了生成有效的URL,将对这些参数的名称或值中出现的任何字符适当地进行转换。

例:

<a href="<c:url value='/content/sitemap.jsp'/>">View sitemap</a>  
<c:url value="/content/search.jsp">  
  <c:param name="keyword" value="${searchTerm}"/>  
  <c:param name="month" value="02/2003"/>  
</c:url> 
7、<c:redirect>操作

语法:

<c:redirect url="expression" context="expression">
    <c:param name="expression" value="expression">
    ...
</c:redirect>

说明:

<c:redirect>用于向用户的浏览器发送HTTP重定向响应,它是JSTL中与javax.servlet.http.HttpServletResponse的sendRedirect()方法功能相当的标记。

例:

<c:catch var="exception">  
  <c:import url="ftp://ftp.example.com/package/README"/>  
</c:catch>  
<c:if test="${not empty exception}">  
  <c:redirect url="/errors/remote.jsp"/>  
</c:if>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值