我需要为
ID
和 Company
类中的 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
}
此注释用于类和应用程序范围的转换规则。
TypeConversion 注解可以应用于属性和方法级别。
@TypeConversion(converter = “com.test.struts2.MyConverter”)
public void setAmount(String amount)
{
this.amount = amount;
}
此注释指定了我的一个转换器的位置。从字面上看,通过使用此注释,我将我的类 com.test.struts2.MyConverter 注册为转换器,并在每次调用 setAmount(String amount) 方法时执行。
通过将
ID
类型的转换器添加到 xwork-conversion.properties
文件中来尝试以下操作
com.struts2.ID = com.struts2.convertors.MyCustomConverter