JSP--非常好用的EL表达式

  • 取值

不同版本的tomcat是否默认开启对EL表达式的支持是不一定的。所以为了 保证EL能正常使用,需要在<%@page标签里加上isELIgnored="false"。

在JSTL中输出:

<c:out value="${name}"/>

用EL:

${name}
  • 作用域优先级

EL表达式可以从pageContext,request,session,application四个作用域中取到值,如果四个作用域属性都一样,EL会按照从高到低的优先级顺序获取。pageContext>request>session>application.

<c:set var = "name" value = "${'gareen-pageContext'}" scope="page"/>
<c:set var = "name" value = "${'gareen-request'}" scope="request"/>
<c:set var = "name" value = "${'gareen-session'}" scope="session"/>
<c:set var = "name" value = "${'gareen-application'}" scope="application"/>

${name}
  • JavaBean概念

javabean的标准:1.提供无参public的构造方法(默认提供);2.每个属性都有public的getter,setter;3.如果属性是boolean那么就对应is和setter方法。

EL获取JavaBean的属性,只需要通过.符号就可以了例如:${hero.name},就会调用getName方法。

<%
    Hero hero = new Hero();
    hero.setName("gailun");
    hero.setHp(616);
    request.setAttribute("hero",hero);
%>
英雄名字:${hero.name}<br>
英雄血量:${hero.hp}
  • 结合JSTL的<c:forEach

<%
List<String> sub = new ArrayList<>();
sub.add("数学");
sub.add("语文");
sub.add("英语");
request.setAttribute("sub",sub);
%>
<table width="200px" align="center" border = "1" cellspacing="0">
<tr>
    <td>编号</td>
    <td>学科</td>
</tr>
<c:forEach items="${sub}" var = "hero" varStatus="st">
    <tr>
        <td>${st.count}</td>
        <td>${hero}</td>
    </tr>
</c:forEach>
</table>
  • 取参

EL表达式还可以做到request.getParameter("name")这样的形式获取浏览器传递过来的参数。访问地址:http://127.0.0.1/test.jsp?name=abc

可以看到获取到了参数name.

//test.jsp

<%@ page language = "java" contentType ="text/html;charset=utf-8"
pageEncoding="utf-8" import = "java.util.*" isELIgnored="false"%>
${param.name}
  • 条件判断

eq相等 ne,neq不相等

gt大于,lt小于

gte,ge小于等于

lte,le小于等于

not非,mod求模

is[not] div by 是否能被某数整除

is[not] even是否为偶数

is[not] odd是否为奇数

使用这个条件判断,大大简化了JSTL的c:if和c:choose代码:

<% 
request.setAttribute("killNumber","10");
%>
c:if用法:
<c:if test="${killNumber>=10}">
超神
</c:if>
<c:if test="${killNumber<10}">
一般
</c:if>
<br>

c:choose用法:
<c:choose>
    <c:when test="${killNumber>=10}">
    超神
    </c:when>
    <c:otherwise>
    一般
    </c:otherwise>
</c:choose>
<br>
EL表达式eq的用法:
${killNumber ge 10?"超神":"一般"}
发布了25 篇原创文章 · 获赞 1 · 访问量 7526

猜你喜欢

转载自blog.csdn.net/qq_28334237/article/details/83109092
今日推荐