JSTL

来源:互联网 发布:谷歌拍照软件 编辑:程序博客网 时间:2024/06/16 14:39
JSTL(Java Standard Tag Library) –Java标准标签库
下面主要讲JSTL–Core 核心标签库。 
首先
•在你项目的任意页面上通过<%@ taglib 指令使用JSTL的核心标签库。
•<%@ tagliburi="http://java.sun.com/jsp/jstl/core" prefix="c"%>
•uri是引用标签库的资源定位符,并不代表一个实际的地址。
•Prefix是自定义的前缀。

下面讲标签库中常用的几个子标签:
1.<c:out> 输出标签--输出表达式或标识符的值(功能和${标识符}类似,差别体现在default和escapeXml两个属性上)
  示例:pageContext.setAttribute("str", "<font color='red'>湖南城院</font>");
      <c:out value="${str}" escapeXml="true"></c:out> --会把“<”编码成“&lt”,即原样输出html语句
       <c:out value="${str}"></c:out> --html语句起作用,输出的是红色的湖南城院

2.<c:set>
  a.给JavaBean设置属性:
    <jsp:useBean id="u" class="cn.hncu.domain.User"></jsp:useBean>
    <c:set target="${u}" property="name" value="Tom"></c:set>
    <c:set target="${u}" property="age" value="23"></c:set>
    <c:out value="${u}"></c:out>
  b.给String类型的变量赋值
      <c:set var="sum" value="200"></c:set>
    <c:out value="${sum}"></c:out>

3.<c:if>
  示例:<c:if test="${age<20}" var="boo" scope="session">
    <hr/>
    湖南abc <br/>
    <font color='red'>湖南城院</font><br/>
    <h3>dskjewj2323232</h3>
    </c:if>
    <c:if test="${!boo}">
    江西123
    </c:if>

4.<c:forEach>
    一、普通for循环的功能
   <c:forEach begin="1" end="10" var="i" step="2">
    ${i}<br/>
   </c:forEach>   ---输出的是1.3.5.7.9
    二、增强for循环的功能<br/>
   1.遍历数组<br/>
   <%
    String strs[] = {"aa","bb","cc"};
    pageContext.setAttribute("strs", strs);
   %>
   <c:forEach items="${strs}" var="str">
    ${str},
   </c:forEach>
    
    <br/>
    2.遍历List<br/>
   <%
    List list = new ArrayList();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    pageContext.setAttribute("list", list);
   %>
   <c:forEach items="${list}" var="a">
    ${a},
   </c:forEach>
   
   
    <br/>
    3.遍历Map<br/>
   <%
    Map map = new HashMap();
    map.put("name", "李四");
    map.put("age",24);
    map.put("addr","安置小区");
    pageContext.setAttribute("map", map);
   %>
   <c:forEach items="${map}" var="aa">
    ${aa} ==>&nbsp;&nbsp;  ${aa.key} , ${aa.value} <br/>
   </c:forEach>
   
    <br/>
    3.遍历元素为值对象的集合,如List&lt;User&gt; <br/>
   <%
    List<User> list2 = new ArrayList<User>();
    list2.add( new User("Mike","1234",20));
    list2.add( new User("Mike2","1234",22));
    list2.add( new User("Mike3","4322",21));
    list2.add( new User("Rose","111",10));
    pageContext.setAttribute("list2", list2);
   %>
   <c:forEach items="${list2}" var="user" varStatus="idx">
    <!--index为下标的序号(索引), count为记数  -->
    ${idx.index},${idx.count}:&nbsp;
    <c:out value="${user.name}"></c:out> ,
    <c:out value="${user.pwd}"></c:out> ,
    <c:out value="${user.age}"></c:out> <br/>
   </c:forEach>
------
count– 当前元素在集合中的序号,从1开始。
index- 记录当前元素的下标,从0开始。

5. c:choose,when,otherwise标签 
  <c:set var="score" value="65" scope="session"></c:set>
   <c:choose>
    <c:when test="${score>=90}">
    优秀
    </c:when>
    <c:when test="${score>=80}">
    良好
    </c:when>
    <c:when test="${score>=70}">
    中等
    </c:when>
    <c:otherwise>
    毕不了业
    </c:otherwise>
   </c:choose>

6.forTokens标签 
  <c:forTokens items="a,b,c,d,23,tt" delims="," var="x">
${x} <br/>   
   </c:forTokens>
  ------该标签相当于String中的split函数,即split(“,”)
  ---- ,(逗号)对字符串进行分隔。
    
7.url相关的标签: url,import,redirect
  <!-- 重写url技术,路径中的斜杠就是项目根目录 -->
   <a href="<c:url value='/ShowServlet' />">显示所有用户信息</a> <br/>
   <!-- 动态包含 -->
   <c:import url="/jsps/foot.jsp"></c:import>
  
  <%--小心,页面中写了c:redirect,就会立即重定向到其它页面。不会再停留在当前页面
    <c:redirect url="/jsps/show.jsp"></c:redirect>
     response.sendRedirect("/jsps/show.jsp");
  --%>

8.c:remove标签:移除属性变量, 和set是相反
   <c:remove var="score"/>
  score: ${score}

















0 0