el表达式
来源:互联网 发布:windows引导修复工具 编辑:程序博客网 时间:2024/06/04 19:19
注意:1、单独js文件不能用EL表达式
首先,JSP是由服务端执行的,EL表达式自然也由服务端解析执行,因此,如果EL所在的脚本在JSP页面内,它是可以获取到值的,这个值在服务器端返回到浏览器端时已经解析完毕,浏览器端只是呈现而已,但是如果在单独的JS文件中写EL,会怎么样呢?这个时候是无法获取的,因为javascript是客户端执行,单独的JS文件不在服务器的解析执行之中,EL是不起任何作用的,这个时候它就等同于普通的字符串,那么如何解决这种情况呢?
一:可以通过window.onload()来得到EL的值再传送给JS文件里的全局变量、方法进行变量初始化 。
二:可以在JSP页面中添加一个隐藏域,给它赋值,在单独的js文件中,通过获取隐藏域的值就间接的获取到了EL表达式的值。
2、jsp中在js里使用el表达式,需要用"",若不加引号,会被作为一个普通变量对待,若未定义这个变量就是undefined,此时if("${objflag == 1}"){}之类的判断,"${objflag == 1}"得到的结果是一个字符串的false或者true,所以if永远都是true。
1、el表达式是什么?(el表达式对于null会输出空字符串,不会报空指针,el表达式中的绑定名, 无论有几个,都会自动依次从四个对象中查找,找到后再进行处理)
2、el表达式的使用1)访问bean的属性(必须提供get、set方法的属性)
方式一:
${user.name}
执行过程:容器会依次从pageContext, request,session,application从查找 绑订名称为"user"的对象,找到后,调用属性名首字母大写的get属性名方法,
"getName"方法然后输出。
与直接写java代码相比,el表达式有两个 优点:简洁,会将null转换成""输出。
如果要指定查找范围,可以:
${pageScope.user.name}
${requestScope.user.name}
${sessionScope.user.name}
${applicationScope.user.name}
方式二:
${user["name"]},此种方式允许[]里面 出现绑订名,还可以允许[]里面出现从 0开始的下标,用于访问数组中的某个元素的值。
${user.interest[0]}
<%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8"import="bean.*"%><html><head></head><body style="font-size: 30px; font-style: italic;"><%User user = new User();user.setName("kimi");user.setAge(22);user.setInterest(new String[] { "snooker", "cooking" });request.setAttribute("user", user);%>name:${user["name"]}<br /><%request.setAttribute("propname", "age");%>propname: ${propname}<br/>name:${user[propname]}<br /> //22interest:${user.interest[1]}</body></html>
2)做一些简单的计算,计算的结果可以直接 输出,也可以给jsp标签的属性赋值。
<%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8"%><html><head></head><body style="font-size: 30px; font-style: italic;">name:${e.name}<br />salary:${e.salary + 10000}<br />age:${e.age}</body></html>a,算术运算: "+","-","*","/","%",注意, "+"号只能求和,不能够连接字符串。
${1+2}
b,逻辑运算(返回布尔值): "&&","||","!"
${1>2 && 2<3}
${!(1>2)}
c,关系运算(返回布尔值):">",">=","<","<=","==","!="
${1==2}
d,empty(${empty null}empty运算先从四个对象中依次查找empty后面的对象,找到后再进行判断):
用来判断一个字符串是否为空,或者一个集合是否为空。
以下四种情况结果为true
空字符串("",若" "(中间有空格)则empty运算为false)
空的集合
值为null 找不到对应的值
empty运算<br /><%request.setAttribute("str2", "");List list1 = new ArrayList();request.setAttribute("list", list1);%>${empty str2}<br />${empty list}<br />${empty null}<br />${empty obj}
放在request域中的如通过request.setAttribute("name","xy"),在页面中可以通过${ requestScope.name }
如xy.jsp?name=xy,就要通过${ param["name"] }获取或${param.name}
在js中使用需要加"${param.name}"- 【EL】EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- el表达式
- EL表达式
- EL表达式
- EL表达式
- el表达式
- el 表达式
- EL表达式
- EL表达式
- EL表达式
- iOS应用中如何声明全局变量?
- 开发与研发
- LeetCode(26) Remove Duplicates from Sorted Array
- 手把手教你画太极图
- 从福昕阅读器转回到adobe reader
- el表达式
- python matplotlib中文显示问题
- C#中的异常语句
- 手把手教你画太极图
- 2416开发记录七: platform驱动之LED(misc)
- 位运算
- jQuery.noConflict() 函数详解
- 【Windows】在windows 8上搭建FTP服务器
- opencv2.4.9安装编译及调试