struts2 自定义复合数组转换器

import java.util.Map;
import ognl.DefaultTypeConverter;
import org.apache.struts2.util.StrutsTypeConverter;
import java.util.List;
import java.util.ArrayList;



public class UserConverter extends StrutsTypeConverter
{
//处理将字符串类型转换成复合类型的方法
public Object convertFromString(Map context,
String[] values, Class toClass)
{
//如果请求参数数组的长度大于1
if (values.length > 1)
{
//创建一个User数组
User[] result = new User[values.length];
//遍历请求参数数组
for (int i = 0; i < values.length ; i++ )
{
//将每个数组元素转换成一个User实例
User user = new User();
String[] userValues = values[i]
.split(",");
user.setName(userValues[0]);
user.setPass(userValues[1]);
//将转换的User实例装入数组
result[i] = user;
}
return result;
}
//如果请求参数数组的长度为1
else
{
//创建一个User实例
User user = new User();
//将请求参数转换成一个User实例
String[] userValues = values[0].split(",");
user.setName(userValues[0]);
user.setPass(userValues[1]);
return user;
}
}
//处理把复合类型转换成字符串类型的方法
public String convertToString(Map context, Object o)
{
//如果需要转换的值是单个的User实例
if (o instanceof User)
{
User user = (User)o;
return "<" + user.getName() + ","
+ user.getPass() + ">";
}
//如果需要转换的值是User数组
else if (o instanceof User[])
{
User[] users = (User[])o;
String result = "[";
for (User user : users )
{
result += "<" + user.getName()
+ "," + user.getPass() + ">";
}
return result + "]";
}
else
{
return "";
}
}
}

你可能感兴趣的:(struts2)