jsp el 用法

JSTL] EL在JSP用法

2009/01/20 16:53

最近看到一些jsp里面用了一些很奇怪的参数,搞不懂他们是从哪里来的。后来上网查了一下终于有点眉目。
For example:
<fmt:setLocale value="${requestScope .correctLocale}" />

requestScope是什么呢?
后来在这个网页看到了.http://dev.csdn.net/article/75915.shtm
现在先转过来。

JSTL

                                      URI                                           前缀

Core                             http://java.sun.com/jstl/core                  c

XML processing           http://java.sun.com/jstl/xml                  x

I18N formation             http://java.sun.com/jstl/fmt                  fmt

Database access           http://java.sun.com/jstl/sql                    sql

Ø JSTL 定义了简单的表达式语言( EL , 用于将行为属性设为在运行时计算出来的动态值。

       EL 表达式以“ ${ ”符开始,以 ”}” 符结尾

Ø 表达式语言操作符:

操作符    执行的操作

.             访问 bean 的属性或 Map 条目

[]            访问数组或 List 元素

()            将子表达式分组以改变操作优先级

+-*/        数学运算

Empty    对空的变量值( null )或空的 String 、数组、 map list 进行测试

EL 语言的 empty 操作符避免了被迫出来 null 值和空字符串(“”)之间的差异。 Empty

还可以为空的数组、 java.urit.List java.util.Map 求值,也就是说它可以用来测试多数常见类型的空的集合。

Ø 隐含的 EL 变量

变量名                  描述

pageScope             所有页面作用域变量的集合( java.util.Map

requestScope         所有请求作用域变量的集合( java.util.Map

SessionScope        所有会话作用域变量的集合( java.util.Map

applicationScope    所有应用程序作用域变量的集合( java.util.Map

param                   所有请求参数的集合,每个参数是单个的 String java.util.Map

paramvalues

header

headerValues

cookie

initParam                     所有应用程序初始化请求参数的集合,每个参数是单个的 String

java.util.Map

pageContext          javax.servlet.jsp.PageContext 类的一个实例,提供了对各种请求数据的访

                            问。

 

转载百度百科:

  EL在java里的意义:

  EL的语法很简单,他最大的特点就是使用上很方便
例:
${sessionScope.user.sex}
所有EL都是以 ${ 为起始、以} 为结尾的。
上述EL范例的意思是:从Session取得用户的性别。如果使用之前JSP代码的写法如下:
<%
User user = (User)session.getAttribute("user");
String sex = user.getSex( );
%>
两者相比较之下,可以发现EL的语法比传统JSP代码更为方便、简洁。
EL提供 . 和 [ ] 两种运算符来存取数据,[ ]可以访问集合或者是数组的元素、Bean的属性。下列两者所代表的意思是一样的,
但是需要保证要取得对象的那个的属性有相应的setXxx()和getXxx()方法才行。
例:
${sessionScope.user.sex}
等于
${sessionScope.user["sex"]}
. 和 [ ] 也可以同时混合使用,如下:
${sessionScope.shoppingCart[0].price}
返回结果为shoppingCart中第一项物品的价格。
在EL中,字符串既可以使用"abc",可以使用'abc'。
EL运算符
EL的算术运算符和Java中的运算符的大致相同,优先级也相同。
注意:'+' 运算符不会连接字符串了,他只用于加法运算。
EL关系运算符有以下六个运算符
关系运算符 说 明 范 例 结果
= = 或 eq | 等于 |${ 5 = = 5 } 或 ${ 5 eq 5 } | true
!= 或 ne | 不等于 |${ 5 != 5 } 或 ${ 5 ne 5 } | false
< 或 lt | 小于 |${ 3 < 5 }或 ${ 3 lt 5 } | true
> 或 gt | 大于 |${ 3 > 5 }或 ${ 3 gt 5 } | false
<= 或 le | 小于等于 |${ 3 <= 5 }或 ${ 3 le 5 } | true
>= 或 ge | 大于等于 |${ 3 >= 5 }或 ${ 3 ge 5 } | false
empty运算符
Empty运算符主要用来判断值是否为null或空的,例如:
${ empty param.name }
接下来说明Empty运算符的规则:
A
如果A为null时,返回true
如果A不存在时,返回true
如果A为空字符串时,返回true
如果A为空数组时,返回true
如果A为空的Map时,返回true
如果A为空的Collection时,返回true
否则,返回false
注意:
在使用EL关系运算符时,不能够写成:
${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而应写成
${ param.password1 = = param.password2 }
使用EL从表单中取得数据
与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。一般而言,我们在取得用户的请求参数时,
可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name}可以取得所有同名参数的值
${paramValues.hobbies[0]}可以通过指定下标来访问特定的参数的值
这里param的功能和request.getParameter(String name)相同,而paramValues和request.getParameterValues(String name)相同。
如果用户填了一个form,form名称有为username的文本框,则我们就可以使用${param.username}来取得用户填入文本框的值。
EL函数
EL中使用函数要写一个要使用到方法的类,然后在配置xxx.tld文件,然后在JSP中使用时和JSP的自定义标签相似。
xxx.tld中的配置
<function>
<name>reverse</name><!--函数名-->
<function-class>jsp2.examples.el.Functions</function-class><!--函数所在的类-->
<function-signature>java.lang.String reverse( java.lang.String )</function-signature>
<!--函数原型,也就是函数的返回值类型,函数名,参数表,注意一定要写类型的全名-->
</function>
EL是雅诗兰黛的简称

你可能感兴趣的:(java,jsp,bean,百度,sun)