码迷,mamicode.com
首页 > 其他好文 > 详细

类型转换

时间:2015-07-10 09:19:18      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

所谓类型转换,就是在Struts2中,前台文本输入与后台接收参数对象类型之间的转换,大多数情况下,对于基本数据类型,Strus2内建的类型转换已经能够满足要求了。

 

局部类型转换与全局类型转换的唯一区别在于配置文件的名称与位置不同,其他完全一致

局部类型转换配置文件:Action所在目录,ActionName-conversion.properties

全局类型转换配置文件:class目录:xwork-conversion.proeprties

 

类型转换器的编写

 1 package org.zln.typeConvert.conversion;
 2 
 3 import org.apache.struts2.util.StrutsTypeConverter;
 4 import org.zln.typeConvert.domain.User;
 5 
 6 import java.util.Map;
 7 
 8 /**
 9  * Created by sherry on 15-7-9.
10  */
11 public class UserConversion extends StrutsTypeConverter{
12     @Override
13     public Object convertFromString(Map context, String[] values, Class toClass) {
14         System.out.println("String To Object");
15         if (values.length > 1){
16             System.out.println("String To Object 1");
17             //如果是集合(List)的话,方法类似
18             User[] users = new User[values.length];
19             for (int i = 0;i < users.length;i++){
20                 User user = new User();
21                 String[] userValues = values[i].split(",",2);
22                 user.setName(userValues[0]);
23                 user.setPass(userValues[1]);
24                 users[i] = user;
25             }
26             return users;
27         }else {
28             System.out.println("String To Object 2");
29             User user = new User();
30             String[] userValues = values[0].split(",",2);
31             user.setName(userValues[0]);
32             user.setPass(userValues[1]);
33             return user;
34         }
35     }
36 
37     @Override
38     public String convertToString(Map context, Object o) {
39         System.out.println("Object To String");
40         if (o instanceof User){
41             System.out.println("Object To String 1");
42             User user = (User) o;
43             return user.getName()+":"+user.getPass();
44         }else if (o instanceof User[]){
45             System.out.println("Object To String 2");
46             User[] users = (User[]) o;
47             StringBuilder stringBuilder = new StringBuilder();
48             stringBuilder.append("[");
49             for (User user:users){
50                 stringBuilder.append("<").append(user.getName()).append(",").append(user.getPass()).append(">");
51             }
52             stringBuilder.append("]");
53             return stringBuilder.toString();
54         }else {
55             return "";
56         }
57     }
58 }

方式有很多,这里只取其中个人认为最简单的一种,就是继承 StrutsTypeConverter 类

 

其他类型转换:

参数值传递给自定义对象的成员变量

技术分享

技术分享

List接收前台参数

技术分享

技术分享

 

Map接收前台参数

技术分享

技术分享

技术分享

 

类型转换

标签:

原文地址:http://www.cnblogs.com/sherrykid/p/4634783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!