JSF 2.2 Converter 中使用CDI的方法 - weijiguang/OA GitHub Wiki
- @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>