JavaWeb系列之十(jstl)

来源:互联网 发布:学知不足 教然后知困 编辑:程序博客网 时间:2024/06/06 07:07


1.jstl的一个简介
    使用方式:jsp里面的指令taglib一起使用,替代页面<%%>JavaServerPages Standard Tag Library
    使用jstl,先导入jar包
    jstl的版本是1.0(版本使用于j2ee1.4时代,不能直接使用)1.1 1.2(差别不大)
    jstl在jsp里面引入标签库  <%@ taglib uri="标签库的路径" prefix="" %>
    找到standard.jar 下面,META-INF里面找到c.tld fn.tld
    c.tld里面找到标签库,和函数库,
    可以用<c:>标签库
2.jstl的标签
    <c:out 属性=“属性值”>:向页面输出内容
    三大属性:value(向页面输出值,也可是输出变量)
            <c:out value="hahah"></c>
            <c:set var="city" value="shan"><c:out value="${city}"><c:out>
            default
            <c:out value="${city}" default="nana"></c:out>取不到值得时候用默认值
            escapeXml
            <c:out value="<a href='we'>bb</a>" escapeXml="false">:不进行转义,默认值是true
3.set标签
    向域对象里面设置值
    <c:set var="" value="" scape="page"></c:set>${pageScope.}
    修改域对象厘米那的对象的属性的值
4.removw标签
    移除域对象里面的标签
    <c:remove var="itcast"/>   
5.jstl的catch标签
    捕获异常
    <c:catch var="e">
       <%
        int b = 10/0;
        %>
      </c:catch>
      ${e.message }
6.if标签
    <c:set var="w" value="200"></c:set>
    <c:if test="${w==200 }">
    <h2>2000</h2>
    </c:if>
    <c:if test="${w!=200 }">
    <h2>other</h2>
    </c:if>
7.选择语句
    <c:choose>
    <c:when test="${n==10 }">
    <h1>10</h1>
    </c:when>
    <c:when test="${n==20 }">
    <h1>10</h1>
    </c:when>
    </c:choose>
8.jstl的forTokens
    用来分割标签 属性:items=“分割的是什么字符串”delims=“根据什么来分割”var=“分割完叫什么”
    <c:forTokens items="a,b,c,d" delims="," var="mm">
  ${mm }
     </c:forTokens>
9、jstl的forEach标签的使用(**********今天最重要的标签********)
    获取域对象里面数组
    <c:forEach var="a" items="${arr1 }">
          <h4>${a }</h4>
    </c:forEach>
    相当于java里面增强for循环,items:要循环的是哪一个数组;var:每次遍历的值
    获取域对象里面的集合(list 、 set 、 map)
    使用jstl的foreach标签获取域对象里面list集合里面的值 
       <c:forEach var="l1" items="${list }">
      <h3>${l1 }</h3>
       </c:forEach>
    使用jstl的foreach标签获取域对象里面set集合里面的值 
       <c:forEach var="s1" items="${set }">
    ${s1 }
       </c:forEach>
 
    使用jstl标签获取域对象里面的map集合里面的值
     <%
      Map map = new HashMap();
      map.put("aa", "小师妹");
      map.put("bb", "大师兄");
      map.put("cc", "师父");
      pageContext.setAttribute("map", map);
      %>
      <c:forEach var="m1" items="${map }">
      <h3>${m1.key } , ${m1.value }</h3>
      </c:forEach>
    向域对象里面放多个对象,通过foreach标签获取到多个对象的属性的值
    使用jstl的foreach标签获取域对象里面多个对象的属性的值
      <%
      Person p1 = new Person();
      p1.setId("100");
      p1.setName("小丽");
      Person p2 = new Person();
      p2.setId("200");
      p2.setName("小红");
      Person p3 = new Person();
      p3.setId("300");
      p3.setName("小三");
      //把多个对象放到域对象里面
      //首先先把这些对象放到一个集合里面,一般使用list集合,然后把集合放到域对象里面
      List list = new ArrayList();
      list.add(p1);
      list.add(p2);
      list.add(p3);
      pageContext.setAttribute("list1", list);
       %>
      
       <c:forEach var="list1" items="${list1 }">
  <h3>${list1.id } , ${list1.name }</h3>
       </c:forEach>

10、jstl的foreach标签的其他操作(看懂)
    循环从1到10
     <!-- 循环从1到10 -->
     <!--
  for(int i=1;i<=10;i++) {}
      -->
     <c:forEach var="i" begin="1" end="10" step="1">
  ${i }
     </c:forEach>
 
    实现从1加到100
    <c:forEach var="b" begin="1" end="100" step="1">
      <c:set var="sum" value="${sum+b }"></c:set>
 </c:forEach>
 ${sum }

     从100到200,每次加4,遇到第3个数变成红色,其他的变成蓝色
     100(蓝色) 104 108(红) 112  116  120(红)
     从100到200,每次加4,遇到第3个数变成红色,其他的变成蓝色 -->
     <c:forEach var="aa" begin="100" end="200" step="4" varStatus="hh">
      <c:if test="${hh.count%3==0 }">
       <font color="red">${aa }</font>
     </c:if>
      <c:if test="${hh.count%3!=0 }">
       <font color="blue">${aa }</font>
      </c:if>
     </c:forEach>
 
===================================================
重点记住这些标签 set标签  if标签  choose标签  foreach标签(最重要的标签)
11.jstl的import,url,redirect,param
    import:在jsp页面中引入其他的jsp页面
        属性context:项目名称;url:写页面项目名称后面的内容
        <c:import url="/jstl/hello.jsp" context="/day12"></c:import>
    url标签:获取url地址
        属性context:项目名称; url:写页面项目名称后面的内容
        <c:redirect url="/jstl/hello.jsp" context="/day12"></c:redirect>
    param:传递参数的使用,类似get提交,地址
    redirect:重定向
12.JSTL中的常用的函数库
    如果想要使用el函数,导入jar包,导入函数库
    <%@ taglib uri="" prefix=""%>   
13.自定义函数
    ${myfn:println("wedfd") }
    开发步骤:
    定义一个java的方法,这个方法必须是一个static的方法
    第二步:创建一个函数库,也就是一个tld标签
    第三步:引入类库
    第四步:重启服务器
14.自定义标签
    一般使用simpleTag接口完成自定义的标签
    使用接口需要把接口里面的方法都实现
    都使用SimpleTagSupport类实现自定义标签
doTag()
setJspContext(JspContext pc)
setJspBody(JspFragment jspBody)
setParent(JspTag parent)
方法执行过程
   
<mycl:printl>
开发步骤:
第一步创建一个类:

15.jsp的开发模式
    两种:模型一:jsp+javabean缺点在jsp里面写大量的代码,java和html混用
    模型二:也叫mvc,只负责自己的事情
    m:model使用javabean
    v:view使用jsp:负责显示数据
    c:controller,使用技术是servlet
    通过c控制什么m显示到什么v里面
16.案例的使用
    注册
   

0 0
原创粉丝点击