首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Displaytag / Spring MVC分页

Displaytag / Spring MVC分页
EN

Stack Overflow用户
提问于 2012-12-04 01:09:20
回答 1查看 2K关注 0票数 0

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

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

我已经将这个参数添加到Displaytag用来生成这些URL的表单中(根据Displaytag文档),但是生成的URL中的值没有改变。

表单条目(type="o"):

代码语言:javascript
复制
<input type="hidden" id="type" name="type" value="o">

分页网址(type="b“表示两者):

代码语言:javascript
复制
http://localhost:8080/searchmain.html?d-443691-p=3&endDate=&_stateQuote=on&type=b&stateOrder=true

有没有人能说明这一点?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-04 22:45:53

我找到了答案--把它贴在这里,希望它能帮助其他人。

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

无论您希望在URL中找到什么值,都必须在您传递的HTTP请求中找到,您不能期望从响应中利用任何东西。

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

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

代码语言:javascript
复制
protected void initHref(RequestHelper requestHelper)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13688260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档