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

问题描述 投票:0回答:2

我需要为

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
}
java struts2 type-conversion struts
2个回答
0
投票

类型转换注解:

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

TypeConversion 注解可以应用于属性和方法级别。

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

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


0
投票

通过将

ID
类型的转换器添加到
xwork-conversion.properties
文件中来尝试以下操作

com.struts2.ID = com.struts2.convertors.MyCustomConverter
© www.soinside.com 2019 - 2024. All rights reserved.