У меня проблемы с попыткой динамического удаления строки в таблице данных.Основываясь на этой статье:
JSF 2.0 Динамическое удаление компонентов
Существует ли способ автоматического обновления таблицы данных после выбора строки в 1 таблице данных идобавить объект этой конкретной строки в другую таблицу данных;Это означает, что если я выберу «A» и нажму кнопку «добавить», «A» появится в моей второй таблице данных, и моя первая таблица данных, которая изначально содержит «A», обновится, и она будет удалена из таблицы.
Это то, что у меня есть:
Index.xhtml
<p:column> <h:commandLink value ="selection" action="#{usuariosGruposBean.selectionOfUserObject}">
<f:setPropertyActionListener target="#{usuariosGruposBean.user}" value="#{users}"/></h:commandLink>
</p:column>
UserGroup Bean
public void selectionOfUserObject() {
var1 = user.getId_usuario();
}
public void testMethod() {
listOfUsuarios = getListOfUsuarios();
listOfUserGroups = getListOfUserGroups();
selectionOfUserObject();
if(listOfUsuarios.get(var1).equals(listOfUserGroups.get(var1))) {
removeUsuarios();
}
else {
System.out.println("Did not work");
}
}
}
public void finishAddUsuariosGrupos() {
this.grps = grpDAO.getGrps(var2);
this.user = userDAO.getUsuarios(var1);
this.userGroups.setId_grupo(var2);
this.userGroups.setId_usuario(var1);
this.userGroups.setGroup(grps);
this.userGroups.setUser(user);
userGrpDAO.saveUsuariosGrupos(userGroups);
testMethod();
}
Iизменил мой предыдущий метод для testMethod После запуска приложения я получаю эту ошибку сейчас:
WARNING: #{usuariosGruposBean.finishAddUsuariosGrupos}: java.lang.IndexOutOfBoundsException: Index: 125, Size: 3
javax.faces.FacesException: #{usuariosGruposBean.finishAddUsuariosGrupos}: java.lang.IndexOutOfBoundsException: Index: 125, Size: 3
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:636)
Я добавил диаграмму, чтобы уточнить, чего я пытаюсь достичь.Я не использую кнопку «обновить», чтобы вручную обновить таблицу данных.Я на самом деле пытаюсь сделать следующее:
- выделение строки с помощью простых данных таблица данных "выбор одной строки"
- нажмите кнопку добавления
- обновления таблицы данныхсам.