日期:2014-05-16  浏览次数:20378 次

jstl表达式常用标签
在web应用开发中,为了使视图与数据逻辑分离,需要使用标签,jstl就是其中之一。
   
一、用法配置
    JSTL的版本和servlet规范的版本不同时,配置方式是不同的,以下以servlet2.4和jstl1.1为例。
  
1、web.xml中的配置如下(其实ide已经帮你配置好了)
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
2、在jsp页面导入声明
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
注意使用<%@ taglib prefix="c" uri=http://java.sun.com/jstl/core %>是不行的

二、常用标签
1、<c:out/>
用于输出内容
例子:<c:out value="abc"/>   <c:out value="${va}" ></c:out>

2、<c:set></c:set>
用于设置作用域变量
例子:<c:set value="Hello" var="sessionVar" scope="session"></c:set>

3、<c:remove />
用于清除作用域变量
<c:remove var="maxUser" scope="application"/>

4、<c:forEach/>
用于循环输出变量
属性:vars:循环体中可以引用的变量;begin:循环开始的下标;end:循环结束的下标;items:集合的名称;
例如:<c:forEach begin="0" end="5" items="array" var="s" />
          ${s}<br>
         </c:forEach>
将输出array集合中的6个元素,array是作用域变量,可以是request,session,application作用域内属性变量(调用setAttribute方法设置的)。如果array中存放的是对象如User(包含name,id属性),如果想输出name属性的话
可以用${s.name},其等价于调用s.getName()方法。

5、<c:if/>
用于执行条件判断
例如:<c:if test="${empty sessionScope.name }">
         <c:redirect url="testJSTLlogin.jsp" />
         </c:if>
个人觉得此功能不够强大,还是脚本灵活

6、<c:choose><c:when></c:when>......<c:other></c:other>
用于执行条件判断相当于if,else if,else if... else
用法:c:choose标签用来选择执行语句
当c:when的test中判断结果为true时执行该标签中的内容;
如果所有c:when的test中判断结果都为false,则执行c:otherwise中的内容;
例子:
<c:choose>
  <c:when test="testCondition">
    Content1
  </c:when>
  <c:when test="testCondition">
    Content2
  </c:when>
  <c:otherwise>
    Content3
  </c:otherwise>
</c:choose>