一般我们在页面填写的内容都是字符串类型,而当我们要传给后台的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
struts2的类型转换
最新推荐文章于 2020-08-28 16:32:35 发布