<s:property value="#myMap['key1']"/>
<s:url value="#myMap['key1']"/>
上面的代码第2行会在页面上输出“value1”,而第3行则会输出"#myMap['key1']"这么一个字符串。 如果将第3行改写成这样:
<s:url value="%{#myMap['key1']}"/>
<s:url value="%{#myMap['key1']}"/>
则输出为“value1”。
这说明struts2里不同的标签对ognl的表达式的理解是不一样的。如果当有的标签“看不懂”类“#myMap['key1']”的语句时,就要用%{}来把这括进去,“翻译”一下了。
3、“$”有两种用途
(1)、在国际化资源文件中,引用OGNL表达式。
(2)、在Struts 2配置文件中,引用OGNL表达式:
<action method="save">
<result type="redirect">listUser.action?msg=${msg}</result>
</action>
<action method="save">
<result type="redirect">listUser.action?msg=${msg}</result>
</action>
EL表达式:
1.基本式:${}
2.4种取范围:pageScope,requestScope,sessionScope,applicationScope
${requestScope.user.name}
3.基本运算:.和[] .用于取属性[]用于取Array,List,Map,Set
${requestScope.map['apple']},${requestScope.list[1]}
4.{}里允许的运算:算术运算,关系运算,逻辑运算,empty/not empty空判断
${11}
${user.age<18}
${(user.age>18)&&(user.=='男')}
${empty user}判断user对象是否为空
5.EL的11个隐含对象
pageContext,param和paramValues,header和headerValues,cookie,initParam和4种取范围对象
*pageContext可获取jsp的request,response,out,session,config,servletContext等对象
${pageContext.session.uesr}
header
${header.host}
*cookie
${cookie.key}
========================================JSTL标签库========================================:
1.核心标签库
a.JSTL表达式标签
b.条件标签
c.循环标签
d.URL操作标签
2.式标签库(处理国际化,数字和日期式)
3.SQL标签库(可以访问)
4.XML标签库(可操作XML标记)
5.函数标签库(主要是字符串操作函数)
------------------------------------------------------------
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32070-7.html
美国佬请注意了