EL、JSTL 2022-03-22

EL

一、作用:

让jsp获取后台数据更加便捷。

二、使用:

语法结构:${expression}

三、使用El表达式获取值:

后端:

①req.setAttribute("str", "获取字符串");-->字符串

②Actor a = new Actor("多宝", "表演", new Address("北京", "昌平, "城南"));req.setAttribute("actor", a);-->对象

③List<Actor> list = new ArrayList<Actor>();-->list集合

    Actor actor = new Actor();

    actor.setName("多肉");

    actor.setName("多动");

    list.add(actor);

    req.setAttribute("list", list);

④Map<String,Actor> map = new HashMap<String, Actor>();-->map集合

    map.put("aa", new Actor("多肉", "睡觉"));

    map.put("bb", new Actor("多动", "吃狗粮"));

⑤request对象存储的请求数据

前端:

①${str}

②${actor}-->获取对象.-->$${actor.address.city}-->获取地址

③${list[0].name }-->获取list集合第一个元素的名称

④${map.aa.name}-->获取map集合,键值为aa数据的名称

⑤${param.键名}-->返回值    ${paramValues.键名}-->返回数组

四、使用EL表达式判断是否空值

后端:

①req.setAttribute("str","");

②req.setAttribute("objects",new Actor());

③req.setAttribute("list",new ArrayList());

④req.setAttribute("map",new HashMap());

前端:

${empty str}

${empty objects}

${empty list}

${empty map}

五、使用El表达式获取请求头

${header }-->${headerValues["accept-language"][0] }

六、使用El表达式获取cookie

${cookie }-->${cookie.JSESSIONID }-->${cookie.JSESSIONID.name }-->${cookie.JSESSIONID.value }

七、使用El表达式进行运算

常用运算符皆可在EL表达式中直接使用,例如:

${1*2 }    ${1+"2" }    ${1>2 }    ${1%2 }    ${sex==1?'男':'女' }  ...

八、El表达式获取作用域的顺序

pageContext-->request-->session-->appilcation。获取作用域的值

${pageScope.键名}-->${requestScope.键名}-->${sessionScope.键名}-->${applicationScope.键名}

JSTL

一、作用

用标签替换逻辑代码的编写

二、使用

基于EL表达式。除Myeclipse以编码工具,其余都需要导入jar包

链接:https://pan.baidu.com/s/1-6XtNpJpPT6o5HqIvU_SsQ    提取码:1111

在jsp页面引入

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  <-- 核心标签库 -->

<%@taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt"%>    <-- 格式化标签库 -->

三、常用标签

<c:forEach items="El表达式获取作用域中要遍历的对象" var="每次循环的数据结果">

${var中的数据}...

</c:forEach>

<c:forEach begin="循环开始的位置" end="循环结束的位置" step="步长" varStatus="每次循环的数据">

</c:forEach>

<c:out value=""El表达式获取作用域中要显示的值" default="默认值"></c:out>    用于在JSP中显示数据,就像<%= ... >

<c:set var="存储信息的变量值" value="要存储的值" scope="var属性的作用域"></c:set>    用于保存数据

<c:remove var="要移除的变量名称" scope="变量所属的作用域"/>    移除一个变量

注意:如果不写变量所属作用域,则移除所有作用域中 要移除的变量名

<c:if test="条件" var="用于存储条件结果的变量" scope="属性的作用域">

  ...

</c:if>

<c:choose>    <c:when test="条件">

        ...

    </c:when>    <c:when test=" 条件 ">

        ...

    </c:when>    ...

    ...

    <c:otherwise>        ...

    </c:otherwise></c:choose>

注意:jstl获取的值都必须在作用域中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容