Struts2值栈

值栈ValueStack是Struts2框架核心组件,它提供对上下文信息和执行环境中元素的访问机制。其在底层实现了一个栈,但与传统栈的实现有所不同。

值栈由以下4个层级对象组成
(1) 临时对象:这些对象在请求处理过程中需要临时保存,比如集合中当前正在迭代的元素;
(2) 模型对象:当Action实现了ModelDriven接口时,模型对象就会被存放在栈中被执行的Action前面;否则不存在这个级别的内容。
(3) Action对象:此对象为当前正在执行的action。
(4) 命名对象:任何对象都可以被赋予一个标志符而成为命名对象。比如与HTTP同等作用域的对象集合对应的Struts2命名对象,#application、#session、#request、#attr和#parameters等。
值栈的使用方式
栈的传统使用方式是压栈和出栈。对于值栈则是通过使用OGNL
(Object Graph Navigational Language对象导航语言)语法编写的特定表达式来查找,或者是在该表达式之上求值。

OGNL表达式
使用圆点符号和表达式求值
调用被检索对象的方法
结合自定义标签使用
常见用法:
(1) person.name   调用getPerson().getName()
(2) #session.user 从会话对象中获取user属性对象
(3) #session.shopcart.size() 获取会话中购物车的数量
(4) top 获取值栈最顶层对象


类型转换:
Struts2内置的类型转换:
String和int、Integer
String和double、Double
String和Map、List
String和Date
String和boolean
String和char
Struts2自定义类型转换
在Struts2中提供了StrutsTypeConverter类来简化自定义类型转换的设计,这个类有两个抽象方法需要实现:

(1) public Object convertFromString(Map context, String[] values, Class toClass) ;
          用于String类型数据转成自定义类型的处理方法参数:
             context --- 与Action有关的上下文信息
             values   --- 从请求中获取的参数值
             toClass --- 要转换的目标类型
public String convertToString(Map context, Object obj) ;
    用于自定义类型转换成String
      参数:
         context --- 与Action有关的上下文信息
         obj --- 自定义类型对象
多说不如多做,下面看具体的小应用:
注册页面的写法:
<input type=”text”name=”username”>
<input type=”password”name=”password>”
<input type=”submit” value=”提交”/>
Action组件中:
Public UserAction extends ActionSupport
{
private String username;
private String password;
//别忘了给username和 password提供set()和get()方法
System.println.out(“用户名”+username);
System.println.out(“密码”+password);

}
相对应---------username—password,在页面中的空间名字和action中的变量名;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值