jstl标签库学习笔记

2012/03/26 1696点热度 0人点赞 0条评论

JSTL(Java Server pages Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。

引入标签库  

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

       * uri:对应的标签库文件中uri标签,通过该值可以找到对应的标签库[c.tld,包含多个标签]的文件

       * prefix:表示使用前缀名(别名)

     <c:if通过c找到uri对应的文件中的c.tld文件,通过if在c中找到if标签

 c:out  

<c:out value="${username}" default="默认值" escapeXml="true|false"></c:out>

        主要用来显示数据内容

       * value      需要显示出来的值

       * default    如果value属性值为空,则显示default的值,默认显示的值

       * escapeXml  默认值为true   是否转换特殊字符,true转换,false不转

 c:set  

     主要用来将变量存储至jsp范围中或者JavaBean的属性中

     var存在的情况 :将值存入jsp范围中

<c:set value="北京" var="city" scope="request" ></c:set>

       * value: 放置要被存储的值

       * var  :存储的变量名称  

       * scope:放置数据的作用域 (page|request|session|application)写法固定

       * 上面等价于pageContext.seAttribute("city","北京",PageContext.REQUESTSCOPE)

         可以从request域中取得变量名为city的值

     var不存在的情况:给javaBean中的某个属性设置值

<%
  Person person=new Person();
  person.setName("yxkong");
  pageContext.setAttribute("p",person);
%>

      <c:out value="${pageScope.p.name}"></c:out> 赋值前取到的值是:yxkong  

<c:set value="鱼翔空" target="${pageScope.p}"  property="name" ></c:set>

      * value:要被储存的值,支持el表达式

      * target:表示一个目标对象,通常对应的是一个javaBean

      * property:表示javaBean中的属性

      <c:out value="${pageScope.p.name}"></c:out>赋值后取到的值是:鱼翔空

 c:if  

<c:if test="${num>6}">输出的内容</c:if>

        test:如果表达式的结果为true,则执行标签体中的内容

 c:chose

<c:chose>
    <c:when test="${num<6}">输出语句</c:when>
    <c:when test="${num<9}"></c:when>
    <c:otherwise>不符合上面的条件的结果</c:otherwise>
</c:chose>

         * c:when  1个或多个 when中test的表达式为true输出

         * c:otherwise 0或1个  当所有的c:when不满足执行

<c:choose >
   <c:when test="${! empty lists}">//判断集合不为null
       <c:forEach items="${lists}" var="emp">//遍历集合
          emp.id;
       </c:forEach>
   </c:when>
   <c:otherwise>
       没有您要查询的数据
   </c:otherwise>
</c:choose>

 c:forEach  

循环控制,遍历集合(collection set map 数组)中的成员循环游览一遍

<c:forEach items="${ListPersons}" var="person" begin="1" end="5" step="2">
     ${person.name}-----${person.age}
</c:forEach>

        * items 被迭代的集合,支持el,集合中存放的是javaBean

        * var  用来存放现在指到的成语

        * begin 开始输出的索引

        * end   结束位置,索引

        * steb   遍历的步长

    遍历List<map<String,String>>结构

<c:forEach items="${listMap}" var="maps" varStatus="x">
     <c:forEach items="${maps}" var="map">
           <option value="${map.key}">${map.value}</option>
     </c:forEach>
</c:forEach>

 c:url    

   <c:url ></c:url>

        主要产生一个url

      *  value 设置路径

      *  var    保存地址的名称

      *  context 相同容器下,其他web站点必须以"/"开头

      *  scope  var的作用域 不加默认为page作用域

  访问当前目录下的

<c:url value="/test.jsp" var="url"></c:url>

  访问当前容器下其他的web应用

<c:url value="/test_jsp/base.jsp" var="url" context="/"/>

  访问外部资源

<c:url value="http://www.yxkong.com" var="url"/>

  传递参数

    用此标签可以对中文进行自动编码

<c:url value="/test.jsp" var="url" scope="pageScope">
   <c:param name="id" value="1">
   <c:param name="name" value="中文">
</c:url>

  <a href="${url}">yxkong</a>

yxkong

这个人很懒,什么都没留下

文章评论