【发布时间】:2013-12-17 00:40:35
【问题描述】:
我在使用 JSF 2.2 和 CDI 时遇到问题,我不知道是否需要焊接,因为我正在使用 classfish 并且它已经具有 CDI,有人知道发生了什么吗?
错误是:
/cars.xhtml @18,74 binding="#{carBean.cars}": Target Unreachable, identifier 'carBean' resolved to null
我的 managerbean 是:
@Named
public class CarBean implements Serializable {
private List<Car> cars;
@Inject
private CarRepositoryImpl dao;
private HtmlDataTable dataTable;
public void setDataTable(HtmlDataTable dataTable)
{
this.dataTable = dataTable;
}
public HtmlDataTable getDataTable()
{
return dataTable;
}
public EntityManager entityManager;
public CarController() {
this.dao = new CarRepositoryImpl(entityManager);
this.setCarros(this.dao.findAll());
Car car = new Car();
car.setDescricao("Teste");
this.cars.add(car);
}
public void setCars(List<Car> cars) {
this.cars = cars;
}
public List<Car> getCar(){
return this.cars;
}
}
我的 JSF 页面是:
<ui:define name="title">
cars sample
</ui:define>
<ui:define name="content">
<f:view>
<h:form>
<h:dataTable value="#{carBean.cars}" var="car"
binding="#{carBean.cars}">
<h:column>
<f:facet name="header">
<h:outputLabel>description</h:outputLabel>
</f:facet>
<h:outputLabel value="#{car.description}"></h:outputLabel>
</h:column>
</h:dataTable>
</h:form>
</f:view>
</ui:define>
【问题讨论】:
-
WAR文件的
WEB-INF目录下有beans.xml吗? -
不,我不知道。即使使用 CDI 仍然有必要吗?
-
是的,它是必需的文件。在 Java EE6 中它可以是空白/空的,Java EE 7 更健壮一些。
-
成功了,谢谢@JohnAment。