如何通过自定义struts类型转换器转换列表项的字段?

时间:2013-07-27 14:34:08

标签: java struts2 type-conversion struts

我需要在IDCompany类中为Employee字段实现自定义转换。我已经实现了从StrutsTypeConverter扩展的自定义转换器,它已成功用于转换Company.ID字段,但它不适用于Employee.ID

似乎主要问题在于转换属性文件。如何在转换属性文件中为员工ID字段指定转换器类?

MyAction-conversion.properties

company.id = com.struts2.convertors.MyCustomConverter
company.??????.id = com.struts2.convertors.MyCustomConverter

MyAction

public class MyAction extends ActionSupport {

    private Company company;

    public Company getCompany () {
        return company;
    }
    public void setCompany (Company company) {
        this.company= company;
    }
    @Override
    public String execute() {
        return SUCCESS;
    }
}

Company

public class Company {

    private ID id;

    private List<Employee> employees;

    // getters and setters
}

Employee

public class Employee{

    private ID id;

    private String name;

    // getters and setters
}

2 个答案:

答案 0 :(得分:0)

<强> TypeConversion Annotation

此批注用于类和应用程序范围的转换规则。

TypeConversion注释可以在属性和方法级别应用。

 @TypeConversion(converter = “com.test.struts2.MyConverter”)
 public void setAmount(String amount) 
 {
    this.amount = amount;
 }

此注释指定了我的某个转换器的位置。从字面上看,通过使用这个注释,我将我的类com.test.struts2.MyConverter注册为转换器,并在每次调用setAmount(String amount)方法时执行。

答案 1 :(得分:0)

通过将ID类型的转换器添加到xwork-conversion.properties文件

,尝试以下操作
com.struts2.ID = com.struts2.convertors.MyCustomConverter