美文网首页
JSP中EL表达式的使用

JSP中EL表达式的使用

作者: Mr_J316 | 来源:发表于2019-05-17 14:20 被阅读0次

2019-05-17

EL(Expression Language)表达式并不是通用的程序设计语言,仅是一种数据访问语言,可以在JSP中方便地访问Java数据。

示例:${expression}

EL隐式对象列表

类别 标识符 描述
JSP pageContext 当前页面
作用域 pageScope 页面作用域
requestScope 请求作用域
sessionScope 会话作用域
applicationScope 应用程序作用域
请求参数 param 存储请求参数
paramValues 将请求参数的所有值作为 String 数组存储
请求头 header 按名称存储请求头
headerValues 将请求头的所有值作为 String 数组存储
Cookie cookie 按名称存储请求附带的 cookie
初始化参数 initParam 按名称存储 Web 应用程序上下文初始化参数

EL数据访问

作用域对象

applicationScope:用来取得application范围属性值。

sessionScope:用来取得session范围属性值。

requestScope:用来取得request范围属性值。

pageScope:用来取得page范围属性值。

这些隐式对象对应于JSP中的pageContext,request,session,application,只用来读取属性值。

//创建对象,分别放进不同作用域
User myUser = new User("0001", "张三", 20);
pageContext.setAttribute("currentUser", myUser);
request.setAttribute("currentUser", myUser);
session.setAttribute("currentUser", myUser);
application.setAttribute("currentUser", myUser);

//读取不同范围的值
page范围:${pageScope.currentUser.name}<br />
request范围:${requestScope.currentUser.name}<br />
session范围:${sessionScope.currentUser.name}<br />
application范围:${applicationScope.currentUser.name}<br />
不指定范围:${currentUser.name}
如果不指定范围,默认会从page范围内找,如果找不到,再依次到request、session、application范围中找。如果没有找到就返回null。

读取集合或map

//存入集合
ArrayList<User> lists = new ArrayList<User>();
lists.add(new User("0001", "张三", 20));
lists.add(new User("0002","李四",30));
session.setAttribute("userList", lists);   

//存入map
Map<String,User> map = new HashMap<String,User>();
map.put("user1", new User("0001","张三",20));
session.setAttribute("currentUser", map);

// 读取集合
${userList[0].name}<br />
${userList[1].name}<br />
    
// 读取map
${currentUser.user1.name}<br />  

请求参数对象

//在EL之前使用如下代码取得请求参数
request.getParameter(name);
request.getParameterValues(name);

//在EL中使用如下隐式对象取得请求参数
param:接收的参数只有一个值。
paramValues:接受的参数有多个值。

示例:

<form method="post" action="buyMessage.jsp">    
      <p>
         请选择您要购买的商品:
      </p> 
      <p>
         <input type="checkbox" name="goods" value="手机"/>手机
      </p>   
      <p>
         <input type="checkbox" name="goods" value="电脑"/>电脑
      </p>
      <p>
         <input type="checkbox" name="goods" value="空调"/>空调
      </p>
      <p>
         请输入收货地址:<input type="text" name="address" />
      </p>
      <input type="submit" value="确定" />
</form>

<!--获取前一页面请求中的值 -->
<body>
  <%
     request.setCharacterEncoding("utf-8");
  %>
    您选择的商品是:
  <p></p>
  ${paramValues.goods[0]}<p></p>
  ${paramValues.goods[1]}<p></p>
  ${paramValues.goods[2]}<p></p>
   您的收货地址是:
  <p></p>
  ${param.address}
  <p></p>
  <input type="button" value="下一步" />
  <input type="button" value="返回上一步" />
</body>

Cookie对象

// 颁发Cookie
Cookie c = new Cookie("username", "admin");
response.addCookie(c);
// 获取cookie
${cookie.username.value }

EL运算符

算术运算符

算术运算符 说明 示例 结果
+ ${1 + 1} 2
- ${1 - 1} 0
* ${1 * 2} 2
/或div ${3 / 2} 1.5
%或mod 取余 ${3 % 2} 1

关系运算符

关系运算符 说明 示例 结果
= = 或 eq 等于 {1 = = 1}或{1 eq 1} true
!= 或ne 不等于 {1 != 1}或{1 ne 1} false
< 或 lt 小于 {1 < 2}或{1 lt 1} true
> 或 gt 大于 {1 > 2}或{1 gt 1} false
<= 或 le 小于或者等于 {1 <= 2}或{1 le 1} true
>= 或 ge 大于或者等于 {1 >= 2}或{1 ge 1} false

逻辑运算符

逻辑运算符 说明 示例 结果
&& 或 and 交集 {A && B}或{A and B} 当A和B都为true时为true,其他情况为false
|| 或 or 并集 {A || B}或{A or B} 当A和B都为false时为false,其他情况为true
! 或 not {!A} 或{not A} 当A为true时,为false 当A为false时,为true

条件运算符

${表达式1 ? 表达式2 : 表达式3} // 与java用法相同
${currentUser.name=="admin"?"管理员":"普通用户"}

验证运算符

${empty 表达式}

返回布尔值判断表达式是否为"空"值,null值、无元素的集合或数组、长度为零的String被认为是空值。

在JS中使用EL

在本页面中使用EL

<%
   session.setAttribute("username", "admin");
%>

<script>
    alert("${username}");
</script>

在外链JS文件中引用EL

必须在当前页面的JS脚本中定义变量存放EL表达式,然后在外部JS文件中引用该变量。

<%
   session.setAttribute("username", "admin");
%>

<script src="js/function.js"></script>
<script>
   var username="${username}";
   myFun();
</script>

//外联js文件
function myFun(){
    alert(username);
}

相关文章

  • JavaWeb之 EL表达式

    EL表达式 EL是JSP内置的表达式语言! ​ jsp2.0开始,不让再使用java脚本,而是使用el表达式和...

  • Jsp(六)

    JSP 表达式语言 JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以...

  • EL表达式 & JSP标签

    EL表达式 EL作用 jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<% %> 以后开发jsp的原则...

  • EL表达式与JSTL【经典】

    一、EL表达式 1、EL相关概念 JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段...

  • 如何在js文件中获取request范围的值

    jsp页面 jsp表达式 EL表达式 js代码 备注 如果js代码在jsp页面内则可以直接使用<%=%>这种方式获...

  • Jsp

    JSP脚本和运行原理 JSP指令 JSP内置/隐式对象 JSP 标签 EL表达式和JSTL标签库使用

  • el表达式失效的问题

    问题 在jsp页面中使用el表达式中出现了如下问题 el表达式被作为文本输出显示了 解决方案 1 在jsp的<%@...

  • EL表达式

    jsp的核心语法: jsp表达式 <%=%> jsp脚本<% %>。 EL表达式作用: 向浏览器输出域对象中的变...

  • el、jstl

    EL(Expression Language)EL表达式 作用:在JSP中消灭java代码 语法: "${ }" ...

  • 前端表达式

    EL与JSTL表达式 EL介绍 什么是EL 表达式语言 EL的功能 替代JSP页面中数据访问时的复杂编码 EL特点...

网友评论

      本文标题:JSP中EL表达式的使用

      本文链接:https://www.haomeiwen.com/subject/ufxoaqtx.html