• jsp之jstl


    JSTL概述:
    apache的东西,依赖EL;
    使用jstl需要导入jstl1.2.jar
    四大库:
    core  :核心库
    fmt :格式化日期、数字
    sql :过时
    xml: 过时
    2、导入标签库
    * jar包
    *在jsp页面中,<%@taglib prefix="前缀" uri="路径"%>
    ======================================================
    core 标签库常用标签(c标签)
    1、out和set
    <c:out value="aaa"/>
    <c:out value="${aaa}"/>
    <c:out value="${aaa}" default="bbb"/>
    <c:out value="${aaa}" default="bbb" escapeXml="true"/>  默认值为true表示转义;
    <c:set var="name" value="value" scope="request"/>
    var:变量名  value:变量值   scope:设置域page/request/session/application如果不申明默认为page
    2、remove
    <c:remove var="a"/>
    scope:如果不写默认删除所有域的变量名为a的值,如果指定就只删除指定的;
    3、url
    value :指定一个路径!他会在路径前面自动添加项目名。
    <c:url value="/index.jsp"> 它会输出/day13_1/index.jsp
    子标签:<c:param> 用来给url后面添加参数 例如:
        <c:url value="/index.jsp">
            <c:param name="username" value="zhangsan"/>
        </c:url>
    结果为:/day13_1/index.jsp?username=%ED%2c%d3%2D%4F 会进行url编码

    var:一旦添加这个属性,url不会输出到页面而是添加到域中进行保存;
    scope:与var一起使用,用来保存url的指定域
    4、if
    <c:if test="boolean值">  当test值为true时,执行下面语句
    <c:set var="a" value="hello" />
    <c:if test="${not empty a}">
        <c:if>    
    5、choose
    <c:choose>
        <c:when tedt="">...</c:when>
        <c:when tedt="">...</c:when>
        <c:when tedt="">...</c:when>
        <c:otherwise>.....</c:otherwise>
    </c:choose>
    6、forEach
    它用来循环遍历数组和集合,它还可以来计数方式的循环!
    ***计数方式:
    <c:forEach var="i" begin="1" end="10" step="2">  相当于i>=1 i<=10  step="步长"
    ${i}<br/>
    </c:forEach>
    var = 循环变量
    begin=设置循环变量从几开始
    end=设置循环变量到几结束
    step=设置步长   step默认为1  
    ***遍历数组和集合:
    1、创建数组
    <%
    String[] str = {"name","value"}
    request.setAttribute("arr",str);
    %>
    2、遍历数组
    <c:forEach items="${str}" var="s">
        ${s}<br/>
    </c:forEach>
    items:要遍历的数组或者集合
    var :定义遍历的每个成员
    forEach循环状态:
    可以使用varStatus来创建循环状态变量!
    count:当前已遍历元素个数
    last:当前循环是否为最后一圈
    first:是否为第一个元素,第一圈
    index:当前元素下标
    current:当前对象
    <%
        ArrayList<String>list= new ArrayList<String>();
        list.add("one");
        list.add("two");
        list.add("three");
        pageContext.setAttribute("list",list);
    %>
    <c:forEach items="${list}" var="ele" varStatus="vs">
    ${vs.index}${vs.count}${vs.first}${vs.last}${vs.current}
    </c:forEach>
    ***fmt库:
    格式化库
    先导入/jsp/jstl/fmt标签库
    1、格式化日期
    <%
        Date date = new Date();
        request.setAttribute("date",date);
    %>
    <fmt:formatDate value="${requestScope.date}" pattern="YYYY-MM-DD  HH:MM:SS"/>
    value 是一个Date类变量
    pattern 是输出的日期格式
    2、格式化数字
    <%
        request.setAttribute("num1",3.1415926);
    %>
    <fmt:Number value="${requestScope.num1}" pattern="0.00"/>
    pattern 默认小数点位数,并默认四舍五入,缺位会以0补位
    <fmt:Number value="${requestScope.num1}" pattern="#.##"/>
    区别在于不补位,都四舍五入;
    ***自定义标签:
    1、标签处理类(标签也是一个对象,那么就需要先有类)
    2、tld文件,他是一个xml
    3、页面中导入tld文件位置<%@ taglib prefix="" uri="tld真实路径"%>
    *标签处理类
    早期javaee提供interface Tag,后来有了很多实现类,为了操作方便sun公司提供了interface SimpleTag;
    JspTag  是Tag和SimpleTag的父亲
    我们用的是SimpleTag,方法如下
    void  doTag() :每次执行标签时,都会调用这个方法;
    JspTag getParent():返回父标签
    void setJspBody(JspFragment jspbody):设置标签体
    void setJspContext(JspContext pc) :设置标签上下文对象 PageContext是JspContext的儿子
    void setParent():设置父标签
    这些方法都是TOMcat自己调用,getParent()方法我们自己调用,但是基本不使用;
    所有的setxxxxx方法都会在doTag方法之前被调用;所以在doTag中就可以使用tomcat传递过来的对象了!
    *配置TLD文件:
    tld文件一般都放在WEB-INF之下,这样保证安全
    *模板可以去core标签的tld文件里面借
    <tag>
        <name>mytag1</name>   //指定标签的名称
        <tag-class>cn.itcast.tag.MyTag1</tag-class>  //指定标签类位置
        <body-content>empty</body-content>  //指定标签体类型,我们这里使用空标签!例如:<br/>自己开始自己结束
    </tag>
    为了方便我们可以使用实现类SimpleTagSupport,这个类已经自动帮我们保存了tomcat传递来的东西,并提供了get方法

  • 相关阅读:
    android手机开发网
    Android 使用Google Weather制作天气预报程序
    android反编译xml文件
    在线MSDN
    工作的思考一:业务流和工作管理
    .NET Remoting技术文章汇总
    学习之路十四:客户端调用WCF服务的几种方法小议
    工作的思考二:无效的沟通
    ADO.NET 全面梳理
    工作的思考三:工作质量,计划制定,沟通交流
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/7402296.html
Copyright © 2020-2023  润新知