How to inject @EJB, @PersistenceContext, @Inject, @Autowired, etc in @FacesConverter?

前端 未结 5 1316
故里飘歌
故里飘歌 2020-11-22 13:04

How can I inject a dependency like @EJB, @PersistenceContext, @Inject, @AutoWired, etc in a @FacesConverter?

5条回答
  •  感动是毒
    2020-11-22 14:01

    @Inject will only works in CDI managed instances

    This only works at least Java EE 7 and CDI 1.1 server:

    @FacesConverter
    public class MyConverter implements Converter {
    
      protected MyService myService;    
    
      @Override
      public Object getAsObject(FacesContext context, UIComponent component, String value) {
          myService = CDI.current().select(MyService .class).get();
          myService.doSomething();
      }
    
    }
    
    • https://docs.oracle.com/javaee/7/api/javax/enterprise/inject/spi/CDI.html

    • https://stackoverflow.com/a/33017416/5626568

提交回复
热议问题