Java 使用分页数据表和ajax迭代参数

Java 使用分页数据表和ajax迭代参数,java,ajax,jsf,jakarta-ee,datatable,Java,Ajax,Jsf,Jakarta Ee,Datatable,我试图找到datatable/ajax问题的解决方案(简而言之): 航空公司 ... 地位 经核准的 分页器动作: <h:form style="margin: 0 0 0 0"> <h:commandButton styleClass="btn" action="#{flightMBean.previous()}" rendered="#{flightMBean.paginator.hasPre

我试图找到datatable/ajax问题的解决方案(简而言之):


航空公司
...
地位
经核准的

分页器动作:

<h:form style="margin: 0 0 0 0">
<h:commandButton  styleClass="btn"
                  action="#{flightMBean.previous()}" 
                  rendered="#{flightMBean.paginator.hasPreviousPage}"
                  value="Prev">
    <f:ajax render=":toRender"/>
</h:commandButton>
<h:commandButton styleClass="btn" action="#{flightMBean.next()}" 
                 rendered="#{flightMBean.paginator.hasNextPage}"
                 value="Next">
    <f:ajax render=":toRender"/>
</h:commandButton>

对于datatable的第一个视图页,一切似乎都正常。当我点击“观察”时,id良好的航班进入数据库。单击“下一步”按钮时出现问题-datatable呈现新行,但每个id与第一页上的相同

例如,在第一页上,我在20:00从x到y,id=1 另一个id=2,第二个页面呈现id=3的第三个航班。 如果我想观察第一次或第二次飞行,一切都可以! 若我想观察第三个,id=1的航班将进入数据库

附言。
如果我把#{f.id}放在没有form/commandButton/jsf组件的地方,一切看起来都很好。。。只是jsf组件重置了我的参数/

如果支持bean是请求范围的,并且在(后期)构造期间没有保留完全相同的数据模型(
后面的对象),则会发生这种情况

要么将bean放在视图范围内,要么在bean的(post)构造函数中编写逻辑,以保留与向最终用户呈现带有表的表单时完全相同的数据模型。如果它取决于一些基于请求的条件,那么您可以使用
跨请求保留它们

另见:
  • -第4点

这是我一直在等待的答案!我将bean的作用域从默认请求更改为查看作用域,此时一切都在进行中:P
<h:form style="margin: 0 0 0 0">
<h:commandButton  styleClass="btn"
                  action="#{flightMBean.previous()}" 
                  rendered="#{flightMBean.paginator.hasPreviousPage}"
                  value="Prev">
    <f:ajax render=":toRender"/>
</h:commandButton>
<h:commandButton styleClass="btn" action="#{flightMBean.next()}" 
                 rendered="#{flightMBean.paginator.hasNextPage}"
                 value="Next">
    <f:ajax render=":toRender"/>
</h:commandButton>