写了一个struts2的类型转换可以在action取到的对象为null好像没有执行的。
配置的 TypeConverttAction-conversion.properties
student=com.resoft.convert.StudentConvert
[code="java"]public class TypeConvertAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private Student student;
private String name;
public String execute() throws Exception
{
//System.out.print(student.toString()+"姓名:"+this.name);
System.out.print(student);
return SUCCESS;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}[/code]
那个转换的类
public class StudentConvert extends DefaultTypeConverter{//StrutsTypeConverter{
@SuppressWarnings("unchecked")
public Object convertFromString(Map map, String[] arry, Class cls) {
Student student = new Student();
System.out.println(map);
System.out.println(arry);
System.out.println(cls);
return student;
}
@SuppressWarnings("unchecked")
public String convertToString(Map map, Object obj) {
//TODO Auto-generated method stub
System.out.println(map);
System.out.println(obj);
return "测试";
}
}
[b]问题补充:[/b]
[b]TypeConverttAction[/b]-conversion.properties 这个文件名有点问题,应该是[b]TypeConvertAction[/b]-conversion.properties可是换过来还是不行,快崩溃了。
[b]问题补充:[/b]
用了walsh的代码还是不行。难啊,谁能帮帮我啊。附件是工程可以看看。
[size=medium][color=red]楼主你看我上面给你回答的了吗?
你的转化器有问题。我上面已经把代码给你了[/color][/size]
[code="java"]public class StudentConvert extends DefaultTypeConverter{//StrutsTypeConverter{
@SuppressWarnings("unchecked")
public Object convertFromString(Map map, String[] arry, Class cls) {
Student student = new Student();
System.out.println(map);
System.out.println(arry);
System.out.println(cls);
return student;
}
@SuppressWarnings("unchecked")
public String convertToString(Map map, Object obj) {
//TODO Auto-generated method stub
System.out.println(map);
System.out.println(obj);
return "测试";
} [/code]
你这样写就不对,你要么继承默认的转化器,要么继承Strut2的转换器,并且你转化器中两个方法参数也不对呀。
建议改为:
[code="java"]public class StudentConvert extends StrutsTypeConverter {
public Object convertFromString(Map context, String[] values, Class toClass) {
Student student = new Student();
//如果你只有一个name属性
String[] paramValues = values[0];
student.setName(paramValues[0]);
return student;
}
public String convertToString(Map context, Object o) {
Student student = (Student)o ;
String name = student.getName();
String result = "姓名:"+name;
return result ;
}
}[/code]
你确定配置文件放的目录有没错误
http://blog.csdn.net/CMTobby/archive/2007/09/25/1799565.aspx
[size=medium][color=red]另外你的配置文件必须和你的Action在同一个目录下。[/color][/size]