0
所以,我加載從H2數據庫列表中顯示時更新一次,並與從上頁的表單數據進行更新。在我第一次提交表單後,數據表只會在會話中更新一次。如果我重置tomcat服務器,則會顯示上次會話中提交的所有數據。我上傳,我認爲相關的所有代碼,:JSF的DataTable會議
管理的bean,與任務列表數據表:
@ManagedBean
@SessionScoped
public class TaskListController {
private List<Task> taskList;
private Task task;
@PostConstruct
private void init() {
taskList = TaskServiceDatabase.taskList();
}
public String loadFirstPage() {
return "createNewTask.xhtml";
}
public List<Task> getTaskList() {
return taskList;
}
//getters and setters
任務列表方法:
public static List<Task> taskList() {
List<Task> taskList = new ArrayList<Task>();
try {
taskList = DatabaseUtils.fetchTask();
} catch (Exception e) {
e.printStackTrace();
}
return taskList;
}
取任務的方法與數據庫通信,我我相當肯定這可以正常工作,如果需要的話,我可以添加它。
這裏是the.xhtml文件:
<h:form id="form">
<p:dataTable id="taskTable" var="task" rowIndexVar="taskNumber"
value="#{taskListController.taskList}" paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column>
<f:facet name="header">
<h:outputText value="Surname" />
</f:facet>
<h:outputText value="#{task.user.surname}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputText value="#{task.user.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Username" />
</f:facet>
<h:outputText value="#{task.user.username}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Project name" />
</f:facet>
<h:outputText value="#{task.project.projectName}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Company name" />
</f:facet>
<h:outputText value="#{task.project.companyName}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Task description" />
</f:facet>
<h:outputText value="#{task.description}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Time (h)" />
</f:facet>
<h:outputText value="#{task.time}" />
</p:column>
</p:dataTable>
<h:commandButton action="#{taskListController.loadFirstPage}"
value="Return" update="form" />
</h:form>
所以,我做了什麼錯?
按照您的實施方式工作。你將它加載到sessioncoped bean的postConstuct中,所以它只加載一次 – Kukeltje
Yeap,將範圍更改爲ViewScoped後,它工作 – Sarpy