ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JSTL表达式

2021-02-10 20:02:45  阅读:144  来源: 互联网

标签:标签 list 指定 语法 JSTL add 表达式 属性


JSTL的使用

JSTL标签库使用说明

使用JSTL之前需要导入两个jar包,分别为jstl.jar、stardard.jar。并在jsp页面导包

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  1. 表达式控制符标签:out、set、remove、catch
  2. 流程控制标签:if、choose、when、otherwise
  3. 循环标签:foEach、forTokens
  4. URL操作标签:import、url、redirect、param。

一、表达式控制标签

c:out

  1. 语法:

    语法一:<c:out value=”要显示的数据对象” [escapeXml=”true|false”] [default=”默认值”]/>  
    语法二:<c:out value=”要显示的数据对象” [escapeXml=”true|false”]>默认值</c:out>
    
  2. 属性:

y0mywT.jpg

  1. 使用范例:

    <ul>
    <%--直接输出一字符串--%>
    <li>(1)<c:out value="直接输出一字符串"/></li>
    <li>(2)<c:out value="<a herf='http://www.baidu.com'>点击进入百度</a>"/></li>
    
    <%--escapeXml="false"表示value值中的html标签不进行转义,而是直接输出 --%>
    <li>(3)<c:out value="<a href='http://www.baidu.com'>点击链接到百度</a>" escapeXml="false"/></li>
    
    </ul>
    

c:set

  1. 语法:

    语法1:存值,把一个值放在指定的域范围内。
        <c:set value="值1" var="name" [scope=”page|request|session|application”]/>
    含义:把一个变量名为name1值为"值1"的变量存储在指定的scope范围内。
    语法2:
        <c:set var="name" [scope="page|request|session|application"] value="变量值">
          </c:set>
    含义:把一个变量名为name2,值为值2的变量存储在指定的scope范围内。
    语法3:
        <c:set value="值3" target="JavaBean对象" property="属性名"/>
    含义:把一个值为"值3"赋值给指定的JavaBean的属性名。相当与setter()方法。
    语法4:
        <c:set target="JavaBean对象" property="属性名" value="属性值">
         </c:set>
    含义:把一个值4赋值给指定的JavaBean的属性名。
    
  2. 属性:

y0ngDP.jpg

  1. 使用范例:

    <ul>
        <h4>将变量放入指定scope范围内,并拿出参数值</h4>
        <li>(1)<c:set var="name" value="张三" scope="page"></c:set> ${pageScope.name}</li>
        <li>(2)<c:set var="name" value="张三" scope="request"></c:set> ${requestScope.name}</li>
        <li>(3)<c:set var="name" value="张三" scope="session"></c:set> ${sessionScope.name}</li>
        <li>(4)<c:set var="name" value="张三" scope="application"></c:set> ${applicationScope.name}</li>
    <%--    未指定scope范围,则依次查找--%>
        <li>(5)${name}</li>
        <%
            Student student = new Student();
            request.setAttribute("student",student);
        %>
    <%--    给普通对象属性赋值--%>
        <li>(6)<c:set target="${requestScope.student}" property="gender" value="female"></c:set> ${student.gender}</li>
    <%--    给map对象赋值--%>
        <%
            Map<String,String> map = new HashMap<String, String>();
            map.put("sname","张三");
            map.put("gender","男");
            request.setAttribute("student",map);
        %>
        <li>(7)<c:set target="${requestScope.student}" property="sname" value="李四"></c:set> ${student.sname}</li>
    
    <%--    c:set可以给不存在的变量赋值但不可以给不存在的对象赋值--%>
        <li>(8)<c:set var="x" value="y" scope="request"></c:set> ${x}</li>
    
        <li>(9)<c:set target="${requestScope.xxx}" value="xxxx"></c:set></li>
    
    </ul>
    

c:remove

  1. 语法:

    <c:remove var="变量名" [scope="page|request|session|application"]/>
    其中var属性是必须的,scope可以以省略。
    
  2. 使用范例:

    <ul>
    <%--    先使用c:set对变量赋值,再使用c:remove移除变量--%>
        <li>(1)<c:set var="sname" value="张三"></c:set> ${sname}</li>
        <li>(2)<c:set var="gender" value="男"></c:set> ${gender}</li>
    
        <c:remove var="gender"></c:remove>
        ${gender}
    </ul>
    

二、流程控制标签的使用

c:if

  1. 语法:

    语法1:<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
    语法2:<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
              标签体内容
        </c:if>
    
  2. 属性:

y0uJPg.jpg

  1. 使用范例:

    <h4>if标签演示</h4>
    <form action="procedure.jsp" method="post">
        <input type="text" name="sname" value="${param.sname}"><br>
        <input type="submit" value="登录">
    </form>
    
    <c:if test="${param.sname eq 'admin'}" var="adminchock">
        <c:out value="管理员欢迎您"></c:out>
    </c:if>
    

choose、when、otherwise

  1. 语法:

     <c:choose>
             <c:when test="条件1">
          //业务逻辑1
             <c:when>
       <c:when test="条件2">
          //业务逻辑2
             <c:when>
       <c:when test="条件n">
          //业务逻辑n
             <c:when>
             <c:otherwise>
          //业务逻辑
       </c:otherwise>
     </c:choose>
    
  2. 使用范例:

    <h4>choose、when、otherwise</h4>
    <c:set var="score" value="85"></c:set>
    
    <c:choose>
        <c:when test="${score >= 90}">
            <c:out value="该学生成绩优秀!"/>
        </c:when>
    
        <c:when test="${(score >= 80)&&(score < 90)}">
            <c:out value="该学生成绩良好!"/>
        </c:when>
        <c:when test="${(score >= 70)&&(score <80 )}">
            <c:out value="该学生成绩中等!"/>
        </c:when>
    
        <c:when test="${(score >= 60)&&(score < 70)}">
            <c:out value="该学生成绩及格!"/>
        </c:when>
    
        <c:otherwise>
            <c:out value="该学生成绩不及格!"/>
        </c:otherwise>
    
    </c:choose>
    

三、循环标签-forEach

  1. 语法:

    <c:forEach
          var=”name”
          items=”Collection”
          varStatus=”StatusName”
          begin=”begin”
          end=”end”
          step=”step”>
        本体内容
    

    【参数解析】:

  (1)var设定变量名用于存储从集合中取出元素。

  (2)items指定要遍历的集合。

  (3)varStatus设定变量名,该变量用于存放集合中元素的信息。

  (4)begin、end用于指定遍历的起始位置和终止位置(可选)。

  (5)step指定循环的步长。 </c:forEach>

  1. 属性:

y0uLQA.jpg

  1. 使用范例:

    <%
        List<String> list = new ArrayList<String>();
        list.add(0,"路飞");
        list.add(1,"索隆");
        list.add(2,"山治");
        list.add(3,"娜美");
        list.add(4,"乌索普");
        request.setAttribute("list",list);
    %>
    
    <c:out value="不使用begin和end迭代显示集合"></c:out><br>
    <c:forEach var="onepiece" items="${list}">
        <c:out value="${onepiece}"/>
    </c:forEach><br>
    <hr/>
    <c:out value="指定begin、end和step迭代显示集合"></c:out><br>
    <c:forEach var="onepiece" items="${list}" begin="1" end="3" step="1">
        <c:out value="${onepiece}"/>
    
    </c:forEach><br>
    <hr/>
    <c:out value="输出整个迭代信息"/>
    <c:forEach var="onepiece" items="${list}" begin="3" end="4" step="1" varStatus="s"><br>
        <c:out value="${onepiece}">的四种属性</c:out><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>

标签:标签,list,指定,语法,JSTL,add,表达式,属性
来源: https://www.cnblogs.com/aishimin/p/14396461.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有