[转载]struts2 值栈与类型转换

 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 --- 自定义类型对象

多说不如多做,下面看具体的小应用:

注册页面的写法:



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中的变量名;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值