EL表达式及${对象}
来源:互联网 发布:智尚网络 培训 编辑:程序博客网 时间:2024/05/21 02:36
JSTL 的发布包有两个版本: Standard-1.0 Taglib 、 Standard-1.1 Taglib ,它们在使用时是不同的。
Sun 发布的标准JSTL1.1 标签库有以下几个标签:
核心标签库:包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。
国际化标签库:用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
数据库标签库:可以做访问数据库的工作。
XML 标签库:用来访问 XML 文件的工作,这是 JSTL 标签库的一个特点。
函数标签库:用来读取已经定义的某个函数。
此外, JSTL 还提供了 EL 表达式语言( Expression Language )来进行辅助的工作。
一、EL表达式
1、表达式与java无关,表达式都是以 ${ 开始,以 } 结束。
2、EL访问java变量不能直接访问,因为得不到数据,要访问数据,需要将其放到作用域中。例如访问String str=”abc”,我们不能通过${str}直接访问,因为获取不到,我们可以这样访问:pageContext.setAttribute(“a”,str);获取方式${a},与java表达式不同的是,当str=null时,该获取方式获取不到null,而是什么东西都不显示。3、实例代码:
request.setAttribute("aaa","wuxin"); ${requestScope.aaa }
访问javaBean:${隐式对象.id号.属性名字 } 例如${sessionScope.user.userName }
4、在EL表达式中定义的变量我们不能使用。
5、要直接从表单中获取值,使用${param.控件名字}
6、获取值的几种方式: ${“23”+3}得到的结果为26,${“23s”+3}报错
7、打开或者禁用EL表达式:使用isELIgnored=”true(禁用)/false(支持)”
8、${这个里面不能使用java代码,否则会报出服务器的500异常}
9、若要在页面显示El表达式,在EL表达式的前面加上一个反斜杠,例如:\${1.2+4.5}
二、${对象}
EL表达式获取对象属性的原理是这样的:以表达式${user.name}为例,EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找到与之匹配的方法,El表达式就会认为这就是要访问的属性,并返回属性的值。所以,想要通过EL表达式获取对象属性的值,那么这个属性就必须有与之对应的get方法。
其实你要了解EL表达式的运行原理,它其实后台也对应的java代码,它会先将你EL表达式中的对象属性的首字符大写,拼成getXX()方法,然后利用反射将对象构建出来,然后再执行getXX()方法,所以这中间不关私有属性的事,调用的是私有属性的get/set方法。如果你不写get/set方法,那EL表达式就拿不到值了。set方法是给你后台设置值用的。
参考文献:
1、http://www.cnblogs.com/HD/p/3630091.html
2、http://www.blogjava.net/supercrsky/articles/179363.html
3、http://blog.csdn.net/wodet_t/article/details/47042435
- EL表达式及${对象}
- Jsp内置对象及EL表达式的使用
- EL表达式的11大隐式对象及总结
- EL表达式隐式对象
- EL表达式param隐含对象
- EL表达式隐式对象
- el表达式取map对象
- EL表达式的隐含对象
- EL表达式的隐含对象
- El表达式里面的对象
- el表达式的内置对象
- EL简介及表达式总结
- EL表达式及自定义标记
- el表达式及一些运用
- 第八章El表达式第四节el表达式对象操作
- 重温模糊知识点之简说EL表达式及11个内置对象
- 第八章El表达式第一节el内置对象
- EL表达式取servlet中的对象
- Servlet---Request和Response的用法演示
- 西蒙iphone-OpenGL ES 教程-06 : 3D坐标里的物体
- [iOS]Size Class不同尺寸适配的是什么样的机型(实验向)
- hdu 1175 连连看dfs(记录转弯次数)
- php页面分页类通用
- EL表达式及${对象}
- QT学习之QScript
- POJ 1995 Raising Modulo Numbers(快速幂)
- 编译PC版vlc
- 用Messenger实现Activity与Service的信息交互
- MySQL详解--锁
- 西蒙iphone-OpenGL ES 教程-07 : 对物体进行独立的转换
- opencv contours 遇到边界
- 在Windows环境下学习Linux命令行的几种方法