JSF 2.2 Converter 中使用CDI的方法 - weijiguang/OA GitHub Wiki

  1. @FacesConverter 方式实现的Converter是无法注入CDI bean的。 2.当你想用CDI时,可以使用@Named声明。如下:

@Named @***Scoped public class XXXConverter implements Converter { @Inject XXXService serv; @Override public Object getAsObject(FacesContext fc, UIComponent uic, String submittedValue) { //... } @Override public String getAsString(FacesContext fc, UIComponent uic, Object value) { //... } }

然后,在页面通过EL的方式引用Converter。即必须明确指定它,像#{XXXConverter}。如下: <h:inputSomething ... converter="#{XXXConverter}" /><h:inputSomething ...> <f:converter binding="#{XXXConverter}" /> </h:inputSomething>