转换器类的getAsObject通参数来服务类,它接受对象(Converter class getA

2019-07-20 08:26发布

我有一个关于转换器类问题getAsObject方法

我有一个名为服务EmployeeService employeeService

public List<Employees> getEmployees(Employees employees);

如果我想打电话从转换器的getAsObject类以上方法,作为参数

public Object getAsObject(FacesContext facesContext, UIComponent component,
            String value)
    employeeService.getEmployees(<?>)

我如何通过employees反对getEmployees从方法getAsObject

任何帮助,高度赞赏。

更新1

@Entity
public class Employees implements Serializable {

private String employeeNumber;
private String employeeName;

Answer 1:

使用下面的转换器,简单地转换数(这是一个String ,根据您的代码),以Employee对象:

@Named("employeeConverter")
public class EmployeeConverter implements Converter {

    @Inject
    private EmployeeService employeeService;

    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if(value == null || value.equals("")) {
            return null;
        }
        Employee employee = employeeService.getEmployeeByNumber(value);//or if it is not a String, replace value with Integer.parseInt(value)
        if(employee == null) {
            throw new ConverterException(new FacesMessage("Employee with number: " + value + " not found."));
        }
        return employee;
    }

    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (!(value instanceof Employee) || (value == null)) {
            return null;
        }
        return ((Employee)value).getEmployeeNumber();
    }

}

和你的观点通过使用converter="#{employeeConverter}"



文章来源: Converter class getAsObject pass parameter to Service class which accepts object