struts2的类型转换

来源:互联网 发布:金百福珠宝软件 下载 编辑:程序博客网 时间:2024/04/27 20:46

   一般我们在页面填写的内容都是字符串类型,而当我们要传给后台的action做相对应的处理,这时,struts2提供了一套完善的类型转换机制,自动地进行类型转换。

1.Struts2 的类型转换,对于 8 个原生数据类型以及 Date,String 等常见类型,Struts2 可以使用内建的类型转换器实现自动的转换

2.但对于自定义的对象类型来说,就需要我们自己指定类型转换的方式了。

如,定义了以下的jsp页面

运行结果为:

定义一个javabean的User类来封装用户的用户名和密码,使得页面上填写的信息可以转换成User对象

新建一个UserAction来处理业务逻辑,并继承ActionSupport类,在struts.xml中配置action

新建一个UserActionConverter转换类,把页面上的信息转换成user对象传到UserAction进行处理

 

完成UserAction的编写

要让userAction能够找到转换器UserConverter,必须按规定编写一个属性文件

表示对于userAction中user属性,必须用指定的转换器进行转换

完成以上步骤,类型转换便能成功。

3.以上的能发生类型转换的原因是,因为用户在表单提交的数据通过struts.xml中标识找到对应的action类,而在执行action类前,在同一个包下找到了对应的类型转换properties文件,于是就要先对数据进行类型转换。类型转换有三个要素:1.***Action-conversion.properties,对哪个类的属性的进行转换;2,属性文件里面的key值,对该类中哪个属性进行转换;3,属性文件里的value值,用哪个转换器进行转换。

4.接第二点的例子,如果要对结果进行jsp页面输出,则必须使用struts2提供的标签库进行把对象类型转换成字符串的类型。

引用struts标签库的方法:

声明标签库

再UserConverter转换器中添加从后台对象转成字符串从而可以传到页面 

在结果页面中

5.struts2还提供了更加简单的类型转换

UserConverter类:(继承了StrutsTypeConverter类,重写了里面的converterFromString,前台转后台;又重写了convertToString,后台转前台)

properties文件(决定了对哪种对象执行哪个转换器)

6.struts也提供了批量类型转换

input.jsp:在页面上添加多个文本框

配置struts.xml的属性

类UserAction2:(此处定义集合接收转换后的user类型)

类UserConverter3:(返回的结果传到userAction中的List<User> user)

新建UserAciton2-conversion.properties属性文件:user = com.erzong.converter.UserConverter2


原创粉丝点击