Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Displaytag/Spring MVC分页_Java_Jsp_Displaytag - Fatal编程技术网

Java Displaytag/Spring MVC分页

Java Displaytag/Spring MVC分页,java,jsp,displaytag,Java,Jsp,Displaytag,我有一个基于SpringMVC的JSP页面,它使用Displaytag显示一组数据。在页面上的表单中,用户可以选择两个复选框中的一个或两个,以显示他们想要查看的数据子集(同时设置“O”、“Q”或“B”) 表单和显示在第一页上工作正常,但表底部的Displaytag分页链接包含格式错误的URL。结果是,当用户单击一个链接以显示不同的页面时,复选框被重置,用户总是看到“O和Q”,即使他们只想看到“Q”(例如) 我已将此参数添加到Displaytag用于生成这些URL的表单中(根据Displaytag

我有一个基于SpringMVC的JSP页面,它使用Displaytag显示一组数据。在页面上的表单中,用户可以选择两个复选框中的一个或两个,以显示他们想要查看的数据子集(同时设置“O”、“Q”或“B”)

表单和显示在第一页上工作正常,但表底部的Displaytag分页链接包含格式错误的URL。结果是,当用户单击一个链接以显示不同的页面时,复选框被重置,用户总是看到“O和Q”,即使他们只想看到“Q”(例如)

我已将此参数添加到Displaytag用于生成这些URL的表单中(根据Displaytag文档),但生成的URL中的值不会更改

表格条目(type=“o”):

有人能解释一下吗


有人知道URL参数是如何生成的吗?

找到了答案-将其发布在这里,希望它能帮助其他人

Displaytag使用初始HTTP请求(而不是响应)上的参数为其分页生成URL参数。因此,如果您依赖于一些更新的参数返回(如本例所示),那么您的分页将产生不正确的结果。在本例中,页面上的两个复选框用于更新隐藏的“type”字段,该字段随后在响应中传回。不幸的是,页面URL使用请求中的“type”字段进行了更新,该字段仍然包含以前未更新的值(例如“B”),而不是新的更新值“O”

无论您希望在URL中找到什么值,都必须在您传入的HTTP请求上,您不能期望利用响应中的任何内容

有道理,只是花了一段时间才找到

如果您想查看实际代码,可以在源代码的TableTag.java中的以下例程中找到:


向我们展示源代码。默认情况下,显示标记将用于加载页面的所有参数附加到页面分页和排序链接的URL。它应该是现成的。
<input type="hidden" id="type" name="type" value="o">
http://localhost:8080/searchmain.html?d-443691-p=3&endDate=&_stateQuote=on&type=b&stateOrder=true
protected void initHref(RequestHelper requestHelper)