gpt4 book ai didi

java - 最简单的 JSF 2.0 应用程序将无法运行

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:55 24 4
gpt4 key购买 nike

在 Java EE 6 中使用最简单的东西时,我从未遇到过这样的问题。我有一个非常基本的项目。我尝试过调试。等等,我不知道该怎么办。

这是我的 bean 。

@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 &gt;" action="#{contactsBean.next}"/>


</h:form>

</ui:define>

好的,当我点击下一步按钮时,我的列表应该填充。至少在 Java EE 5 中总是如此。我不确定我做错了什么。我试图做一个简单的分页器,但即使这样也行不通。该模型永远不会更新。

世界上到底发生了什么。我在没有 EJB 的情况下尝试过,但也不起作用。

最佳答案

我找到原因了。

有不同的包带有 SessionScoped 注释。

javax.enterprise.context.SessionScoped 和 javax.faces.context.SessionScoped。

由于我使用 @Named(value = "contactsBean") 注入(inject),所以我需要使用 javax.enterprise。 @ManagedBean(name = "contactsBean") 与 javax.faces.context 一起使用。

关于java - 最简单的 JSF 2.0 应用程序将无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4939851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com