У меня есть данные в моем JSP, который выбирает данные из базы данных.я включил ссылку в каждую строку таблицы данных, которая по клику переходит к другому jsp (history.jsp), принимающему 2 входных параметра.
Student.jsp
<h:dataTable id="dt1" value="#{Student.stuList}" var="stuList" >
<h:column>
<f:facet name="header">
<h:outputText value="Student Name"/>
</f:facet>
<h:outputText value="#{stuList.stuName}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Student Number"/>
</f:facet>
<h:outputText value="#{stuList.stuNum}"></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Student History"/>
</f:facet>
<h:form>
<h:commandLink id = "historyBtn" value="Student History" action="#{stuBean.showHistory}">
<f:param name="sName" value="#{stuList.stuName}" />
<f:param name="sNumber" value="#{stuList.stuNum}" />
</h:commandLink></h:form>
</h:column>
</h:dataTable>
history.jsp
<h:dataTable id="dt2" value="#{StuHistory.stuHistory}" var="stuHistory" >
<h:column>
<f:facet name="header">
<h:outputText style=""value="Marks in test1" />
</f:facet>
<h:outputText style="" value="#{stuHistory.test1}" ></h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Marks in test2"/>
</f:facet>
<h:outputText value="#{stuHistory.test2}" ></h:outputText>
</h:column>
</h:dataTable>
<h:form>
<h:commandButton id = "backBtn" value="Back to StuList" action="#{stuBean.backToStuList}">
</h:commandButton> </h:form>
StudentBean
public String backToStuList() {
return "stuList";
}
public String showHistory() {
sHistory.getStuHistory();
return "stuHistory";
}
StudentHistory.java (класс действия)
private List stuHistory = new ArrayList();
String sNum;
String sName;
public List getStuHistory() {
getStuHistoryFromDb(sNum, sName);
return stuHistory;
}
face-config.xml
<managed-bean>
<managed-bean-name>stuBean</managed-bean-name>
<managed-bean-class>
com.klit.bean.StudentBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>Student</managed-bean-name>
<managed-bean-class>
com.klit.action.Student
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>StuHistory</managed-bean-name>
<managed-bean-class>
com.klit.action.StuHistory
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<navigation-rule>
<from-view-id>Student.jsp</from-view-id>
<navigation-case>
<from-action>#{stuBean.showHistory}</from-action>
<from-outcome>stuHistory</from-outcome>
<to-view-id>/StudentHistory.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/StudentHistory.jsp</from-view-id>
<navigation-case>
<from-action>#{stuBean.backToStuList}</from-action>
<from-outcome>stuList</from-outcome>
<to-view-id>/Student.jsp</to-view-id>
</navigation-case>
</navigation-rule>
TheПроблема, с которой я сталкиваюсь, это первый раз, когда я запускаю student.jsp, он работает нормально, но когда я нажимаю на историю и возвращаюсь, данные добавляются к существующим данным, т. е. у меня теперь удваивается размер списка. Каждый раз, когда я возвращаюсь к немуэто та же проблема.это похоже на мой history.jsp, там также добавляется список с существующими данными.Любые идеи, чтобы обновить страницу или Datatable ????