EL表达式

为了消除jsp中的Java代码

语法:

${EL表达式}

a.EL不需要导包

b.在el中调用属性,其实是调用的getXxx()方法

${范围.对象.属性.属性的属性 }

操作符:操作:属性,不是对象

. : 使用方便

[] : 如果是常量属性,需要使用双引号/单引号 引起来;比点操作符更加强大

[]强大之处:

a.可以容纳一些 特殊符号 (.  ?   -)

b.[]可以容纳 变量属性 (可以动态赋值)

String x = "a";

${requestScope.a}等价于${requestScope["a"]}等价于${${requestScope[x]}

c.可以处理数组

${requestScope.arr[0] }

普通对象、map中的变量

通过EL获取JSP  九大内置对象

${pageContext }

${pageContext.request }

${pageContext.sessoin }

JSTL:比EL更加强大

需要引入2个jar :jstl.jar   standard.jar

引入tablib  :

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

其中prefix="c" :前缀

核心标签库:  通用标签库、条件标签库  迭代标签库

a.通用标签库

<c:set>赋值

i:

在某个作用域之中(4个范围对象),给某个变量赋值

    <%--

        request.setAttribute("name", "zhangsan") ;

    --%>

        <c:set var="name"    value="zhangsan"   scope="request"/>

          ${requestScope.name }

  <c:set var="变量名"    value="变量值"   scope="4个范围对象的作用域"/>

ii:

给普通对象赋值

在某个作用域之中(4个范围对象),给某个对象的属性复制 (此种写法,不能指定scope属性)

        <c:set target="${requestScope.student}" property="sname"  value="zxs" />

给map对象赋值

        <c:set target="${requestScope.countries}" property="cn"  value="中国" />

  <c:set target="对象" property="对象的属性"  value="赋值" />     

注意 <c:set>可以给不存在的变量赋值 (但不能给不存在的对象赋值)

<c:out>  :显示

true:<c:out value='<a href="https://www.baidu.com">百度</a>' default="当value为空的,显示的默认值" escapeXml="true" />

false:    <c:out value='<a href="https://www.baidu.com">百度</a>' escapeXml="false" />

<c:remove >:删除属性

<c:remove var="a" scope="request"/>

选择:

if(boolean)

单重选择

<c:if test="" >

if else if... esle if... else  /switch

<c:choose>

    <c:when test="...">   </c:when>

    <c:when test="...">   </c:when>

    <c:when test="...">   </c:when>

    <c:otherwise>   </c:otherwise>

</c:choose>

在使用 test="" 一定要注意后面是否有空格

例如:test="${10>2 }"   true

     test="${10>2 } "  非true

循环(迭代标签库)

for(int i=0;i<5;i++)

    <c:forEach  var="name" items="${requestScope.names }" >

        -${name }-

    </c:forEach>

for(String str:names)

    <c:forEach  var="student" items="${requestScope.students }" >

        ${student.sname }-${student.sno }

    </c:forEach>


转载请注明出处:https://www.cnblogs.com/stu-jyj3621
原文地址:https://www.cnblogs.com/stu-jyj3621/p/14474444.html