gpt4 book ai didi

java - 为什么此 ajax 操作不适用于 requestScope?

转载 作者:行者123 更新时间:2023-11-29 06:16:20 26 4
gpt4 key购买 nike

package com.atlanticpkg.view.beans;

import com.atlanticpkg.controller.ejb.ContactsFacade;
import com.atlanticpkg.model.entities.Contacts;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

@Named(value = "contactsBean")
@SessionScoped
public class ContactsBean implements Serializable {

@EJB
ContactsFacade contactsEJB;
private List<Contacts> contacts = new ArrayList<Contacts>();
private int page = 0;
private int contactsRecords;
private boolean previousDisabled = false;
private int firstItem = 0;
private int batchSize = 5;

public ContactsBean() {
}

@PostConstruct
public void onLoad() {

contactsRecords = contactsEJB.count();
updateContactsList();
}

public void updateContactsList() {

if (firstItem <= 0) {
previousDisabled = true;
}
if (firstItem > 0) {
previousDisabled = false;
}

contacts = contactsEJB.findRange(firstItem, batchSize);
}

public void next() {

if (firstItem + batchSize < contactsRecords) {
firstItem += batchSize;
}

updateContactsList();
}

public void previous() {

if (firstItem > 0) {
firstItem -= batchSize;
}

updateContactsList();
}

/**
* @return the contacts
*/
public List<Contacts> getContacts() {
return contacts;
}

/**
* @param contacts the contacts to set
*/
public void setContacts(List<Contacts> contacts) {
this.contacts = contacts;
}

/**
* @return the contactsRecords
*/
public int getContactsRecords() {
return contactsRecords;
}

/**
* @param contactsRecords the contactsRecords to set
*/
public void setContactsRecords(int contactsRecords) {
this.contactsRecords = contactsRecords;
}

/**
* @return the page
*/
public int getPage() {
return page;
}

/**
* @return the previousDisabled
*/
public boolean isPreviousDisabled() {
return previousDisabled;
}

/**
* @param previousDisabled the previousDisabled to set
*/
public void setPreviousDisabled(boolean previousDisabled) {
this.previousDisabled = previousDisabled;
}

/**
* @return the firstItem
*/
public int getFirstItem() {
return firstItem;
}

/**
* @param firstItem the firstItem to set
*/
public void setFirstItem(int firstItem) {
this.firstItem = firstItem;
}

/**
* @return the batchSize
*/
public int getBatchSize() {
return batchSize;
}

/**
* @param batchSize the batchSize to set
*/
public void setBatchSize(int batchSize) {
this.batchSize = batchSize;
}
}

index.xhtml

  <h:form>

<h:panelGroup id="contactsPanel">
<h:dataTable id="contactsTable" 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:outputText value="#{contactsBean.contactsRecords}" />

<h:commandLink disabled="#{contactsBean.previousDisabled}" value="&lt; previous" action="#{contactsBean.previous}">
<f:ajax execute="@form" render="contactsPanel"/>
</h:commandLink>

<h:commandLink value="next &gt;" action="#{contactsBean.next}">
<f:ajax execute="@form" render="contactsPanel"/>
</h:commandLink>

</h:panelGroup>

</h:form>

我不确定为什么这不起作用。从技术上讲,页面没有刷新,所以我应该可以使用请求范围吧?谢谢。

最佳答案

ViewScoped 可能更合适,请参阅 Balusc 的文章:http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped.html

关于java - 为什么此 ajax 操作不适用于 requestScope?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4959037/

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