当前位置: 代码迷 >> Web前端 >> OGNL 获得request、session 的值
  详细解决方案

OGNL 获得request、session 的值

热度:786   发布时间:2012-11-06 14:07:00.0
OGNL 取得request、session 的值

一、

对于取pageContext、parameters、request、session、application 等处的属性值(假如有 name 属性)时我们用的 EL 表达式分别是:

${pageScope.name}、${param.name}、{$requestScope.name}、{$sessionScope.name}、{$applicationScope.name}

那么对应的 OGNL 的解决方案分别是:

<s:peroperty value="#attr.name"/>?
<s:property value="#parameters.name"/>
<s:property value="#request.name"/>
<s:property value="#session.name"/>
<s:property value="#application.name"/>
<s:textfield name="name"??value="%{#parameters.name}"/>

说明,attr 如果可以访问到,则访问?pageContext,否则将?依次搜索 pageContext、request、session、application 相应值,所以可用来访问 pageContext 中的值,可替代 EL 的 ${pageScope.name}。

?

二、jsp页面显示

?

???session 范围取值:??

??????<s:property?value="#session.mySessionPropKey"/>????

??????<s:property?value="#session['mySessionPropKey']"/>

??

????request 范围取值:??

??????<s:property?value="#request['myRequestPropKey']"/>??

?

在session中取值容易只要通过?%{#变量.属性名}即可,

<s:textfield value="request['myRequestPropKey']"/> 这种方式是取出不出数值的

?

label标签和文本标签取值,解决方法:

?

???session 取值:??

??????<s:label?label="编辑用户"?value="%{#session.user.m_sUserName}"?required="true"/>??

?

???request 取值:??

?????<s:textfield?name="bdef"?value="% {#request.对象名.属性名}"?size="50"?maxlength="50"?/>??

  相关解决方案