本文介绍了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类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!