EL和JSTL表达式

xiaoxiao2021-02-28  84

EL表达式

作用: - 获取JSP4个范围中的保存数据(page request session application) - 支持运算,包括逻辑运算和数字运算 - EL 表达式内置的11个对象

- 通过EL表达式可以调用JAVA方法。

EL表达式可以代替jsp上的JAVA代码,使他简化并且方便修改

request.getSession().setAttritube("name",name);

在JSP中使用EL表达式就可以方便获取到request中的参数并输出

${requestScope.name} ${requestScope["name"]} <!--两种方法都可以获得name-->

类似于这样子, pageScope {sessionScope} ${applicationScope} 分别用来输出依次类型的参数。

**此外** 也可以用来获取JAVAbean的对象 ``` JAVA public class person{ private String name; private int age; public void setName(void name){this.name=name;} ..... } 然后在servlet中把对象放入session request.getSession().setAttritube("person",person); <div class="se-preview-section-delimiter"></div> ${requestScope.person.name} 这相当于一个点调用一个get方法 也可以用&{requestScope["person"]["name"]}

注释:[]和丶的差别在于[]可以调用一些比较特殊的字符

request.getSession().setAttritube("1",person);

此时,如果你调用 requestScope.1 {requestScope[“1”]}来获取


JSTL函数库

首先要在jsp中引入

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

1.用于将内容输出到页面,包括EL表达式 2.可以设置默认值 3.可以将html代码进行转义输出

< c:out >

1.用于将内容输出到页面,包括EL表达式 2.可以设置默认值 3.可以将html代码进行转义输出

1.设置已存在的对象的属性 2.可以将数据保存到jsp的四种变量类型中

< c:set >

1.设置已存在的对象的属性 2.可以将数据保存到jsp的四种变量类型中

将对象中设置的属性移除

<% people s=new people(); s.setName("王五"); request.setAttritube("people",s); %> <c:remove var="name" scope="request"/></c:remove> 等价于 <% request.removeAttritube("people"); %>

代替普通java中的try catch 代码

< c:catch >

代替普通java中的try catch 代码

< !-- 异常被捕获,捕获后将异常保存到page范围的e2--> <c:catch var="e2"> <% int a=1/0; %> </c:catch> <!--可以在此处打印出捕获到的错误--> ${e2.message}

上面的代码就类似于

try{ int a=1/0; }catch(Exception e){ System.out.println("捕获到异常"); }

< c:if >

用来代替java的if判断

<c:set var="n" value="10" scope="page"/></c:set> <!-- 将判断的结果保存到pageContext范围内的result中--> <c:if text="${n>8}" var="result" scope="page"> n的值大于8 </c:if> ${result} < !--结果是 true--> <c:if text="${not (n>8)}"> n的值小于8 </c:if>

注意,没有< c:else >这个方法

< c:choose > < c:when > < c:otherwise >

可以构成java中的if、else if、switch的语法结构 jsp <c:set var="n" value="3" scope="page"/></c:Set> <c:choose> <c:when text="${pageScope.n==3}"> Hello </c:when> <c:when text="${pageScope.n==7}"> World </c:when> <c:otherwise> Hello world! </c:otherwise> </c:choose>

< c:forEach>

可以遍历数组,List和Map等 jsp <% request.setAttertube("Num",new int[]{1,2,3,4,5});%> <c:forEach item="${Num}" var="i"> <!-- item代表每次遍历的元素 ,并将它保存到page范围的i中--> ${i} </c:forEach> List和数组的遍历方式相同,Map遍历也大概一致,只是输出内容时要声明输出键还是值,,如下 jsp ${ i.key} ${ i.value}

< c:forEach begin="1" end="100" step="2" var="i" varStatus="status" > ${status.index} <!--通过status得到当前循环到第几--> < /c:forEach>

对于EL和JSTL表达式,这里只是简单的介绍了一些,后续应该还会再完善。第一次写博客,不好的望各位大牛指出!!

转载请注明原文地址: https://www.6miu.com/read-38341.html

最新回复(0)