004.JSTL之核心C标签

作者: 胖先森 | 来源:发表于2017-03-14 09:37 被阅读97次

    粗体为必须掌握部分

    1. 表达式控制标签out、set、remove、catch
    2. 流程控制标签if、choose、when、otherwise
    3. 循环标签forEachforTokens
    4. URL操作标签:import、url、redirect

    只用JSTL需要大家引入两个JAR包 jstl-1.2.jar和standard-1.1.2.jar,如果是MyEclipse会自带,我们还是使用去下载的

    使用标签时,一定要在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="< pangsir>" escapeXml="true" default="default"></c:out><br/>
      <c:out value="< pangxiansheng>" escapeXml="false" default="default"></c:out><br/>
      <c:out value="${null}" escapeXml="false">default</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>标签 掌握

    相当于switch语法,三个标签通常嵌套使用,第一个标签在最外层,最后一个标签在嵌套中只能使用一次

       <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->一定要配合使用EL表达式

    7. <c:forEach>遍历标签 [重中之重]

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

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

    • var 用于存储从集合中取出的元素;
    • items 指定要遍历的集合;
    • varStatus 用于存放集合中元素的信息。
    • step 步长
    • begin 从什么位置索引开始
    • end 到什么位置结束,不能越界啊

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

    代码示例:

    
    <body>
          <h4><c:out value="forEach实例"/></h4>
        <hr>
        <% 
            //模拟的数据,应该该数据在Servlet中产地过来最好
            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}">
             <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">
             <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">
         <c:out value="${fuwa}" />的四种属性:<br>
          所在位置,即索引:<c:out value="${s.index}" /><br>
          总共已迭代的次数:<c:out value="${s.count}" /><br>
          是否为第一个位置:<c:out value="${s.first}" /><br>
          是否为最后一个位置:<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">
         <c:out value="${n}" />的四种属性:<br>
              所在位置,即索引:<c:out value="${s.index}" />
                <br>
              总共已迭代的次数:<c:out value="${s.count}" />
                <br>
              是否为第一个位置:<c:out value="${s.first}" />
                <br>
              是否为最后一个位置:<c:out value="${s.last}" />
                <br>
            </c:forTokens>
    </body>
    
    
    

    运行效果:

    9. URL 操作标签

    把其他静态或动态文件包含到 JSP 页面

    标签名称 描述
    <c:import> 可以包含其他web应用中的文件,甚至是网络上的资源
    <jsp:include> 只能包含同一个web应用中的文件

    <c:import> 标签说明

    语法:

    • <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

    如果要访问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">hanpang8983</c:param>
    </c:redirect>
    

    地址栏的结果为:
    http://127.0.0.1:8080/?uname=shxt&password=hanpang8983

    <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>
    

    相关文章

      网友评论

        本文标题:004.JSTL之核心C标签

        本文链接:https://www.haomeiwen.com/subject/kzycnttx.html