我从JEE开始,我需要使用JSF-EJB-JPA。
我有一个EJB项目,它部署好了,我的war文件也是如此。当我在战争中使用注释EJB时,它根本不起作用,没有信息显示
我有一个h:dataTable,我想用来自数据库的信息来填充它,但是数据没有显示(我不知道它是否没有到达WAR或只是它没有显示)。该表是空的,只有我(当然)直接写的标题。
如果我不在任何地方使用@EJB,那么未正确显示的数据是正确显示的,例如,如果我写“Hello world”我无法打印出来,但是当我敢于使用@EJB时,即使是那些信息停止工作,好像使用@EJB打破了xhtml和经理之间的所有连接。
我按照教程,在视频中一切都很顺利。
控制器的一部分:
obj
xhtml的pice
import javax.inject.Named;
import javax.inject.Inject;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import javax.ejb.EJB;
@Named(value = "editorialController")
@SessionScoped
public class EditorialController implements Serializable {
@EJB//(name=Tutorial-ejb")
private EditorialFacade editorialFacade;
private Integer randomInt;
public List<Editorial> findAll()
{
return this.editorialFacade.findAll();
}
public Integer getRandomInt() {
return randomInt;
}
public void setRandomInt(Integer randomInt) {
this.randomInt = randomInt;
}
}
我试过:#{editorialController.findAll()}和#{editorialController.findAll}
对于EJB,像往常一样:实体包,其他用于外墙; netbeans生成它们,所以我认为它不是必要的复制和粘贴代码。 我正在使用glassfish(payara)。 web.xml包含所有JSF内容。
persistence.xml
<h:body>
Hello from Facelets
<h:outputLabel value="#{editorialController.randomInt}"></h:outputLabel>
<h:form>
<h:dataTable var="p" value="#{editorialController.findAll()}">
<h:column>
<f:facet name="Header">
<h:outputText value="NAME"></h:outputText>
</f:facet>
<h:outputText value="#{p.nombre}"></h:outputText>
</h:column>
</h:dataTable>
</h:form>
</h:body>