我从来没有遇到过这样的问题,让最简单的东西在Java EE 6中工作。我有一个非常基本的项目。我试过调试。等等。我不知道该怎么做。
这是我的豆。
@Named(value = "contactsBean")
@SessionScoped
public class ContactsBean implements Serializable {
@EJB
ContactsFacade contactsEJB;
private List<Contacts> contacts = new ArrayList<Contacts>();
public ContactsBean() {
}
public String next() {
contacts = contactsEJB.findAll();
return "index";
}
/**
* @return the contacts
*/
public List<Contacts> getContacts() {
return contacts;
}
/**
* @param contacts the contacts to set
*/
public void setContacts(List<Contacts> contacts) {
this.contacts = contacts;
}
}
确定。非常基本。
这是我的xhtml页面。
<ui:define name="content">
<h:form>
<h:dataTable value="#{contactsBean.contacts}" var="contacts">
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText value="#{contacts.name}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Street"/>
</f:facet>
<h:outputText value="#{contacts.street}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="City"/>
</f:facet>
<h:outputText value="#{contacts.city}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="State"/>
</f:facet>
<h:outputText value="#{contacts.state}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Zip"/>
</f:facet>
<h:outputText value="#{contacts.zip}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Country"/>
</f:facet>
<h:outputText value="#{contacts.country}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Sent?"/>
</f:facet>
<h:selectBooleanCheckbox value="#{contacts.sent}" />
</h:column>
</h:dataTable>
<h:commandButton value="next >" action="#{contactsBean.next}"/>
</h:form>
</ui:define>
好的,当我点击下一个按钮时,我的列表应该填充。至少它总是用Java EE 5做的。我不确定我做错了什么。我试图做一个简单的分页器,但即使这样也行不通。该模型永远不会更新。
世界上发生了什么。我在没有EJB的情况下尝试过它,它也没有用。
答案 0 :(得分:1)
我找到了原因。
使用SessionScoped注释的不同包。
javax.enterprise.context.SessionScoped和javax.faces.context.SessionScoped。
由于我正在使用@Named(value =“contactsBean”)注入,我需要使用javax.enterprise。 @ManagedBean(name =“contactsBean”)与javax.faces.context一起使用。