zoukankan      html  css  js  c++  java
  • JSTL之C标签学习

    JSTL 核心标签库标签共有13个,功能上分为4类:

    1.表达式控制标签:out、set、remove、catch

    2.流程控制标签:if、choose、when、otherwise

    3.循环标签:forEach、forTokens

    4.URL操作标签:import、url、redirect

    只用JSTL需要大家引入两个JAR包 jstl-1.2.jar和standard-1.1.2.jar

    使用标签时,一定要在jsp文件头加入以下代码:

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

    之前可能也好事,但是我引用的是这个,可能跟网络上大部分的版本不一样,没有深入的研究!

    下面分别对这些标签进行说明:

    1. <c:out> :  用来显示数据对象(字符串、表达式)的内容或结果

    使用Java脚本的方式为:<% out.println("hello") %>  <% =表达式 %>

    使用JSTL标签:<c:out value="字符串">,例如:

    <body>
      <c:out value="&lt要显示的数据对象(未使用转义字符)&gt" escapeXml="true" default="默认值"></c:out><br/>
      <c:out value="&lt要显示的数据对象(使用转义字符)&gt" escapeXml="false" default="默认值"></c:out><br/>
      <c:out value="${null}" escapeXml="false">使用的表达式结果为null,则输出该默认值</c:out><br/>
    </body>

    效果如下:

    2. <c:set> 用于将变量存取于 JSP 范围[pageContext/request/session/appliaction]中或 JavaBean 属性中。下面的例子中假设已经有User.java 这个类文件。

    一共有四种语法格式,前两种是给jsp的范围变量赋值,后两个是给 javaBean 变量赋值

    效果如下:

    真心用的比较少,但是还是蛮好用的,一般情况下需要配合使用的是EL表达式

    3.<c:remove>放弃吧 主要用来从指定的 jsp 范围[pageContext/request/session/application]内移除指定的变量。使用类似,下面只给出语法:

    <c:remove var="变量名" [scope="page|request|session|application"]></c:remove>

    自己测试吧,这个用的不太多哟!

    4.<c:catch>放弃吧 用来处理 JSP 页面中产生的异常,并存储异常信息

    <c:catch var="name1">

          容易产生异常的代码

    </c:catch>

    5.<c:if> 重中之重

    <c:if test="条件1" var="name" [scope="page|request|session|application"]></c:if>

    代码截图:

    注意比较的中文比较的时候使用的单引号,如果是数字自己比较一下就可以了!

    6. <c:choose> <c:when> <c:otherwise>掌握哟! 三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次

    <body>
          <c:set var="score">85</c:set>
        <c:choose>
            <c:when test="${score>=90}">
                    你的成绩为优秀!
            </c:when>
            <c:when test="${score>=70&&score<90}">
                    您的成绩为良好!
            </c:when>
            <c:when test="${score>60&&score<70}">
                您的成绩为及格
            </c:when>
            <c:otherwise>
                    对不起,您没有通过考试!
            </c:otherwise>
        </c:choose>
      </body>

    自己测试一下,特别注意test里面的比较啊!

    7.<c:forEach>重中之重

    语法:<c:forEach var="name" items="Collection" varStatus="statusName" begin="begin" end="end" step="step"></c:forEach>

    该标签根据循环条件遍历集合 Collection 中的元素。

    var 用于存储从集合中取出的元素;

    items 指定要遍历的集合;

    varStatus 用于存放集合中元素的信息。

    varStatus 一共有4种状态属性,下面例子中说明:

    <body>
          <h4><c:out value="forEach实例"/></h4>
        <hr>
        <% 
            List a=new ArrayList();
            a.add("四海兴唐");
            a.add("教育培训");
            a.add("Java教学");
            a.add("第一名");
            a.add("胖先生");
            //必须在范内才可以使用
            request.setAttribute("a",a);
        %>
        <B><c:out value="不指定begin和end的迭代:" /></B><br>
        <c:forEach var="fuwa" items="${a}">
            &nbsp;<c:out value="${fuwa}"/><br>
        </c:forEach>
        <hr/>
        <B><c:out value="指定begin和end的迭代:" /></B><br>
        <c:forEach var="fuwa" items="${a}" begin="1" end="3" step="2">
            &nbsp;<c:out value="${fuwa}" /><br>
        </c:forEach>
        <hr/>
        <B><c:out value="输出整个迭代的信息:" /></B><br>
        <c:forEach var="fuwa" items="${a}" begin="3" end="4" step="1" varStatus="s">
        &nbsp;<c:out value="${fuwa}" />的四种属性:<br>
        &nbsp;&nbsp;所在位置,即索引:<c:out value="${s.index}" /><br>
        &nbsp;&nbsp;总共已迭代的次数:<c:out value="${s.count}" /><br>
        &nbsp;&nbsp;是否为第一个位置:<c:out value="${s.first}" /><br>
        &nbsp;&nbsp;是否为最后一个位置:<c:out value="${s.last}" /><br>
        </c:forEach>
    </body>

    这个必须要记住啊,一定要记住啊!我们可以给MyEclipse或者Eclipse安装插件,方便我们的使用

    8.<c:forTokens> 用于浏览字符串,并根据指定的字符串截取字符串 这个属于技巧,需要大家灵活掌握

    语法:<c:forTokens items="stringOfTokens" delims="delimiters" [var="name" begin="begin" end="end" step="len" varStatus="statusName"]></c:forTokens>

    <body>
          <h4>
            <c:out value="forToken实例" />
            </h4>
            <hr>
            <c:forTokens items="四、海、兴、唐、欢、迎、你" delims="" var="c1">
                <c:out value="${c1}"></c:out>
            </c:forTokens>
            <hr>
            <c:forTokens items="SHXT-VV" delims="-" var="t">
                <c:out value="${t}"></c:out>
            </c:forTokens>
            <hr>
            <c:forTokens items="1*2*3*4*5*6*7" delims="*" begin="1" end="3"
                var="n" varStatus="s">
        &nbsp;<c:out value="${n}" />的四种属性:<br>
            &nbsp;&nbsp;所在位置,即索引:<c:out value="${s.index}" />
                <br>
            &nbsp;&nbsp;总共已迭代的次数:<c:out value="${s.count}" />
                <br>
            &nbsp;&nbsp;是否为第一个位置:<c:out value="${s.first}" />
                <br>
            &nbsp;&nbsp;是否为最后一个位置:<c:out value="${s.last}" />
                <br>
            </c:forTokens>
    </body>

    效果图:

    9.URL 操作标签

    <c:import> 把其他静态或动态文件包含到 JSP 页面。

    与<jsp:include>的区别是后者只能包含同一个web应用中的文件,前者可以包含其他web应用中的文件,甚至是网络上的资源。

    语法:<c:import url="url" [context="context"] [value="value"] [scope="..."] [charEncoding="encoding"]></c:import>

            <c:import url="url"  varReader="name" [context="context"][charEncoding="encoding"]></c:import>

    中括号代表是可选择的属性,可以不写

    <h4>
                 <c:out value="import实例" />
             </h4>
             <hr>
             <h4>
                 <c:out value="绝对路径引用的实例" />
             </h4>
             <c:catch var="error1">
                 <c:import url="http://www.baidu.com" />
             </c:catch>
             <c:out value="${error1}"></c:out>
             <hr>
             <h4>
                 <c:out value="相对路径引用的实例,引用本应用中的文件" />
             </h4>
             <c:catch>
                 <c:import url="shxt.txt" charEncoding="UTF-8" />
             </c:catch>
             <hr>
             <h4>
                 <c:out value="使用字符串输出、相对路径引用的实例,并保存在session范围内" />
             </h4>
             <c:catch var="error3">
                 <c:import var="myurl" url="shxt.txt" scope="session" charEncoding="UTF-8"></c:import>
                 <c:out value="${myurl}"></c:out>
                 <c:out value="${myurl}" />
             </c:catch>
             <c:out value="${error3}"></c:out>

    URL路径有个绝对路径和相对路径。相对路径:<c:import url="sxt.txt"/>那么,shxt.txt必须与当前文件放在同一个文件目录下。

    如果以"/"开头,表示存放在应用程序的根目录下,如Tomcat应用程序的根目录文件夹为 webapps。

    导入该文件夹下的 shxt.txt 的编写方式: <c:import url="/shxt.txt">。

    如果要访问webapps管理文件夹中的其他Web应用,就要用context属性

    例如访问demoProj下的index.jsp,则:<c:import url="/index.jsp" context="/demoProj"/>.

    <c:redirect> 该标签用来实现请求的重定向。

    例如,对用户输入的用户名和密码进行验证,不成功则重定向到登录页面。或者实现Web应用不同模块之间的衔接

    语法:<c:redirect url="url" [context="context"]/>

      或:<c:redirect url="url" [context="context"]>

                <c:param name="name1" value="value1">

           </c:redirect>

    示例:

    <c:redirect url="http://127.0.0.1:8001">
                <c:param name="uname">shxt</c:param>
                <c:param name="password">lusid123</c:param>
    </c:redirect>

    http://127.0.0.1:8080/?uname=shxt&password=lusid123

    <c:url> 用于动态生成一个 String 类型的URL,可以同上个标签共同使用,也可以使用HTML的<a>标签实验超链接。

    语法:<c:url value="value" [var="name"] [scope="..."] [context="context"]>

                <c:param name="name1" value="value1">

           </c:url>

    或:<c:url value="value" [var="name"] [scope="..."] [context="context"]/>

    <c:url value="http://127.0.0.1:8001" var="url" scope="session"</c:url>
    <a href="${url}">Tomcat首页</a>
  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法提高 P0404
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    Java实现 蓝桥杯VIP 算法训练 排列问题
    关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
  • 原文地址:https://www.cnblogs.com/lusid/p/5451515.html
Copyright © 2011-2022 走看看