我的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>