通配符+值栈


一、     包的通配符

    <package name="default" extends="struts-default">

       <action name="*_*" class="org.simpleit.app.{1}" mathod="{2}">

           <result>/WEB-INF/jsp/{1}.jsp</result>

       </action>

    </package>

二、关于值栈:

1). helloWorld , ${productName} 读取 productName , 实际上该属性并不在 request 等域对象中, 而是从值栈中获取的.

2). ValueStack:

I. 可以从 ActionContext 中获取值栈对象

II. 值栈分为两个逻辑部分

      > Map : 实际上是 OgnlContext 类型, 是个 Map, 也是对 ActionContext 的一个引用. 里边保存着各种 Map:

requestMap,sessionMap, applicationMap, parametersMap, attr

      > 对象栈: 实际上是CompoundRoot 类型, 是一个使用 ArrayList 定义的栈. 里边保存各种和当前 Action 实例相关的对象.是一个数据结构意义的栈.

三、 Struts2 利用 s:property 标签和 OGNL 表达式来读取值栈中的属性值

1). 值栈中的属性值:

 > 对于对象栈: 对象栈中某一个对象的属性值

 > Map : request,session, application 的一个属性值一个请求参数的值.

2). 读取对象栈中对象的属性:

> 若想访问 Object Stack 里的某个对象的属性. 可以使用以下几种形式之一:

object.propertyName

object['propertyName']

object["propertyName"]

> Object Stack 里的对象可以通过一个从零开始的下标来引用.ObjectStack 里的栈顶对象可以用 [0] 来引用,它下面的那个对象可以用 [1] 引用.

[0].message

> [n] 的含义是从第N 个开始搜索, 而不是只搜索第N 个对象

> 若从栈顶对象开始搜索, 则可以省略下标部分: message

> 结合 s:property 标签:

<s:propertyvalue="[0].message" />0时等同于

<s:propertyvalue="message" />

 3). 默认情况下, Action对象会被 Struts2 自动的放到值栈的栈顶.

>对象栈属性:

显示部分

ProductName:^<%=request.getAttribute("productName") %>

ProductDesc:${ productName }

ProductPrice:<s:property value="[0]. productName "/>

ProductPrice:<s:property value=" productName "/>

以上均为值栈中的的一个对象。若想读取第二个则用value="[1].productPrice"

>Map栈属性:

#

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值