您的位置:首页 > Web前端 > JavaScript

[JSTL笔记]—c标签

2015-08-04 11:25 507 查看
记录一下JSTL的c标签内容,不是很全。

导入Taglib伪指令

[code]<%@ 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 实体(此处提到的字符分别转换成
<、> 和 &
)。

例:

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


2、赋值

语法:

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


说明:

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

例:

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


3、循环

语法:

[code]<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 类的实例。

例:

[code]<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判断

语法:

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


说明:

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

例:

[code]<c:if test="${status.first}">  
   <tr><td align="left" class="blogDate">  
        <c:out value="${blogEntry.created}"/>  
   </td></tr>  
</c:if>


5、Choose操作

语法:

[code]<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>
标记的主体内容。

例:

[code]<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操作

语法:

[code]<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,将对这些参数的名称或值中出现的任何字符适当地进行转换。

例:

[code]<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>
操作

语法:

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


说明:

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

例:

[code]<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: