b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ognl表达式和el表达式_ognl表达式详解_ognl表达式(2)

电脑杂谈  发布时间:2017-02-12 05:02:28  来源:网络整理

parameters对象:用于访问HTTP的请求参数,例如#parameters.userName或者#parameters['userName'],相当于调用request.getParameter("username")。

attr对象:用于按page->request->session->application顺序访问其属性。

4.为何使用EL表达式能够访问valueStack中对象的属性

原因是Struts2对HttpServletRequest作了进一步的封装。简略代码如下:

public class StrutsRequestWrapper extends HttpServletRequestWrapper {

public StrutsRequestWrapper(HttpServletRequest req) {

super(req);

}

public Object getAttribute(String s) {

......

ActionContext ctx = ActionContext.getContext();

Object attribute = super.getAttribute(s);//先从request范围获取属性值

if (ctx != null) {

if (attribute == null) {//如果从request范围没有找到属性值,即从ValueStack中查找对象的属性值

......

ValueStack stack = ctx.getValueStack();

attribute = stack.findValue(s);

......

}

}

return attribute;

}

}

5.采用OGNL表达式创建List/Map集合对象

如果需要一个集合元素的时候(例如List对象或者Map对象),可以使用OGNL中同集合相关的表达式。

使用如下代码直接生成一个List对象:

<s:set value="{'zhangming','xiaoi','liming'}" />

<s:iterator value="#list">

<s:property value="n"/><br>

</s:iterator>

生成一个Map对象:

<s:set value="#{'foo1':'bar1', 'foo2':'bar2'}" />

<s:iterator value="#foobar" >

<s:property value="key"/>=<s:property value="value"/><br>

</s:iterator>

Set标签用于将某个值放入指定范围。

scope:指定变量被放置的范围,该属性可以接受application、session、request、 page或action。如果没有设置该属性,则默认放置在OGNL

Context中。

value:赋给变量的值.如果没有设置该属性,则将ValueStack栈顶的值赋给变量。

6.采用OGNL表达式判断对象是否存在于集合中

对于集合类型,OGNL表达式可以使用in和not in两个元素符号。其中,in表达式用来判断某个元素是否在指定的集合对象中;not in判断某个元素是否不在指定的集合对象中,如下所示。

in表达式:

<s:if test="'foo' in {'foo','bar'}">


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-31925-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...