您的位置:首页 > 编程语言 > Java开发

struts2学习(二)--转换器StrutsTypeConverter和全局类型转换

2012-12-31 01:49 645 查看
 抽象类StrutsTypeConverter继承了DefaultTypeConverter接口,有如下方法:

 

abstract 
Object
convertFromString(Map context,String[]
values,
Class toClass)


          Converts one or more String values to the specified class.
abstract 
String
convertToString(Map context,Object
o)


          Converts the specified object to a String.
Object
convertValue(Map context,Object
o,
Class toClass)
 

StrutsTypeConverter简化了类型转换代码的编写,StrutsTypeConverter继承DefaultTypeConverter,提供了两个抽象的方法convertFromString()和convertToString,分别表示从页面的字符串转换为后台对象以及从后台对象转为页面的字符串,我们只需要实现这两个抽象方法即可实现类型转换。

将学习(一)中转换器代码修改成如下:

package com.struts.converter;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;
import com.struts.bean.User;
public class UserConverter2 extends StrutsTypeConverter{

@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
User user = new User();
String str = arg1[0];
System.out.println(arg1.length);
System.out.println(arg1[0]);
int index = str.indexOf(";");
String username = str.substring(0,index);
String userpass = str.substring(index+1);
user.setPassword(userpass);
user.setUsername(username);
return user;
}

@Override
public String convertToString(Map arg0, Object arg1) {
String str = "";
if(arg1 instanceof User)
{
User user = (User)arg1;
str = "username:"+user.getUsername()+" ;---- userpass: "+user.getPassword();
}
return str;
}

}

 

全局类型转换:

    在src目录下新建xwork-conversion.properties(该名称固定)。该文件的内容是待转换的类=转换器的名字如:com.struts2.bean.User = cm.struts2.converter.UserConverter。一般使用较少。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息