读书人

struts2中action以及request中参数的获

发布时间: 2012-10-25 10:58:57 作者: rapoo

struts2中action以及request中参数的获取方法

经过struts2"加工"的request里面内容分布是下面这样的

{

?? ?"request":{

?? ? ? ?"attrib1":"attrib1",

?? ? ? ?"attrib2":"attrib2",

?? ? ? ?"valuestack":{

?? ? ? ? ? ?"actioncontext":"actioncontext",

?? ? ? ? ? ?"useraction":[

?? ? ? ? ? ? ? ?"property1",

?? ? ? ? ? ? ? ?"property2"

?? ? ? ? ? ?]

?? ? ? ?}

?? ?}

}

request里面有个ValueStack的东西,里面包含了一个ActionContext和Action本身。

而ActionContext里面又包含了以Map形式展现了的request,session,application等这些scope。

?

你可以在action中调用servletActionContext获得HttpServletReqeust对象,直接放入request中,那这个属性就成了上面的attrib1,attrib2。(官方不推荐直接在action中用到servlet API)你也可以把属性设在action中,那就成了上面的property1,property2了

?

在页面上,这两者都可以用<s:property/>标签取得,但是取得方法是不一样的,property1,2可以直接用

<s:property value="property1"/>

?

这样取到

但是如果你用同样方法取attrib1,如<s:property value="attrib1"/>则什么也不会得到。

如何获得attrib1? 如何用<s:property>获取直接存在request中的属性?

是通过ognl表达式 ,<s:property value="#request.attrib1"/> 这样就行了。

读书人网 >软件架构设计

热点推荐