我有一个关于转换器类问题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;
使用下面的转换器,简单地转换数(这是一个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