本文介绍了Converter类getAsObject将参数传递给接受对象的Service类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对转换器类 getAsObject 方法有疑问

I have question regarding Converter class getAsObject method

我有一个名为的服务EmployeeService employeeService

public List<Employees> getEmployees(Employees employees);

如果我想从Converter类的getAsObject调用上面的方法作为参数

If I want to call the above method from getAsObject of Converter class which as arguments

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

如何将员工对象传递给 getEmployees 来自的方法getAsObject

How do I pass employees object to getEmployees method from getAsObject?

任何帮助都非常感谢。

更新1

@Entity
public class Employees implements Serializable {

private String employeeNumber;
private String employeeName;


推荐答案

使用以下转换器,只需转换数字(是字符串,根据您的代码)到员工对象:

Use a following converter, that simply converts number (which is a String, according to your code) to Employee object:

@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}

and use it in your views by converter="#{employeeConverter}".

这篇关于Converter类getAsObject将参数传递给接受对象的Service类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 20:26