2

我需要为ID字段CompanyEmployee类实现自定义转换。我已经实现了自定义转换器扩展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
}
4

2 回答 2

0

类型转换注解

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

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

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

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

于 2013-07-27T15:56:26.367 回答
0

通过将类型的转换器添加IDxwork-conversion.properties文件来尝试以下操作

com.struts2.ID = com.struts2.convertors.MyCustomConverter
于 2013-07-27T16:56:33.867 回答