代码之家  ›  专栏  ›  技术社区  ›  mcfly soft

管理的是去润滑的。使用CDIBean不起作用

  •  0
  • mcfly soft  · 技术社区  · 6 年前

    我的IDE将ManagedBean指示为无润滑。我已经了解了这一点,并决定将javax.faces.bean.ManagedBean注释替换为javax.inject.Named。 但是当被替换时,我的CDIBean无法识别(不调用PostConstruct):

    //@ManagedBean(name = "carlistbean")
    @Named(value = "carlistbean")
    @SessionScoped
    public class CarListBean implements Serializable {
    
        @PostConstruct
        public void init(){
            cars = carRepository.getAllCars();
        }
    
        @Inject
        private CarRepository carRepository;
    

    <h:dataTable value = "#{carlistbean.cars}" var = "car"
    

    我使用的是JSF2.2.18

        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.18</version>
        </dependency>
    
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.18</version>
        </dependency>
    

    有人能帮我/给我一个提示吗?

    使现代化

    我正在使用J2EE8

    WEB-INF中的my beans.xml如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
           bean-discovery-mode="all">
    </beans>
    
    0 回复  |  直到 6 年前