Displaytag / Spring MVC分页

时间:2012-12-03 17:09:20

标签: java jsp displaytag

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

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

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

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

<input type="hidden" id="type" name="type" value="o">

分页网址(两者的类型=“b”):

http://localhost:8080/searchmain.html?d-443691-p=3&endDate=&_stateQuote=on&type=b&stateOrder=true

任何人都可以对此有所了解吗?

有谁知道如何生成网址参数?

1 个答案:

答案 0 :(得分:0)

找到答案 - 在此发布,希望它能帮助别人。

Displaytag使用初始HTTP REQUEST上的参数而不是RESPONSE为其分页生成URL参数。因此,如果您依赖于某些更新后的参数(如本例所示),那么您的分页将产生不正确的结果。在这种情况下,页面上的两个复选框用于更新隐藏的&#34;类型&#34;然后在响应中传回的字段。不幸的是,使用&#34;类型&#34;更新了分页URL。来自REQUEST的字段仍包含先前未更新的值(例如&#34; B&#34;)而不是新的更新值&#34; O&#34;。

您希望在URL中找到的任何值都必须在您传入的HTTP REQUEST中,您不能期望使用RESPONSE中的任何内容。

有道理,它只需要一段时间才能找到它。

如果您想查看实际代码,请参阅Displaytag来源的TableTag.java中的此例程:

protected void initHref(RequestHelper requestHelper)