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内置了一系列常见的类型转换器,可以处理基本类型如String、boolean、char、int、long、float、double以及Date,还包括数组和集合(假定元素是String类型)。当表单提交的数据与Action类中的字段类型匹配时,...
自定义转换器通过实现Struts2的TypeConverter接口,或者继承DefaultTypeConverter类来实现。你需要重写`convertValue()`方法,根据实际需求进行转换。注册自定义类型转换器有三种方式:局部类型转换器、全局类型转换...
8. 字符串到数组、Map或List的转换,其中数组元素默认为字符串,但可以通过自定义类型转换器转换为其他复合数据类型。 Struts2的类型转换API是基于OGNL(Object-Graph Navigation Language)实现的,它提供了一个名...
默认情况下,Struts2提供了基本类型的转换器,但有时需要自定义转换器以适应特定的数据类型,如日期、自定义枚举等。 - **自定义局部类型转换器**:可以在action或结果中定义,仅对该action或结果有效。 - **自定义...
- **概念介绍**:Struts2提供了许多内置的类型转换器,如`IntegerTypeConverter`、`DateTypeConverter`等,这些转换器用于自动将表单提交的数据转换为目标对象的类型。 **5.2 基于OGNL的类型转换** - **5.2.1 直接...
1. **开发步骤**:包括MVC设计模式的理解,基于Struts2的Web应用开发流程,自定义Action、实体和业务类的编写。 2. **Struts2特性**:如拦截器的定义和使用,各种Struts2标签的解释,异常处理和上传下载功能。 ...
{4.14}数组转换为集合}{89}{section.4.14} {4.15}Map的迭代}{90}{section.4.15} {4.15.1}字符统计}{91}{subsection.4.15.1} {5}格式化输入输出}{94}{chapter.5} {5.1}时间与日期}{94}{section.5.1} {5.1.1}...
- **Struts2**: Struts2框架中,Action实例是线程安全的,因为框架保证每个请求都会获得一个新的Action实例。 - **Spring MVC**: 控制器(Controller)通常不是线程安全的,因为每个HTTP请求可能会共享相同的控制器...