0

我目前正在为 Liferay 开发一个 portlet(使用 Spring MVC 框架)。现在,我刚刚使用 displaytag 库在我在 portlet 上显示的列表上实现分页。

我现在的问题是,我需要检测当前请求是否已由 displaytag 库的分页控件启动。我发现在进行分页时,在 URL 中添加了一个参数,看起来像“d-4157739-p=2”,表示当前显示的页面。所以我可以做

int isPagingRequest = PortletRequestUtils.getIntParameter(request, "d-1332617-p", -1);

..如果 isPagingRequest (我可以将其更改为布尔值)有一个值,则该请求已由 displaytag 分页发起。然而,这是非常糟糕的编码,所以我想避免它。此外,“d”和“p”之间的数字各不相同,这使得它很难被发现。

有人建议我如何检测当前请求是否是由寻呼引起的?

非常感谢

4

3 回答 3

1

Displaytag 提供了一个类“ParamEncoder”(我认为它在它的构造函数中)根据表的表名(id 或 uid 元素 - 必须设置为生成有效的校验和(d 和-(parameter))。检查一下。TableTagParameters 还包括参数所需的常量 - 因此结合这两者,您可以检索适当的变量键以从请求中检索。

于 2009-04-22T00:39:26.750 回答
0

一种选择是将您自己的参数添加到requestURI属性中的值。例如,您可以添加以下内容:

requestURI="mylistsource.action?ispage=true"

到 table 标记,其中 mylistsource.action 是您首先生成列表的服务器操作。

然后,您可以在服务器上查找“ispage”参数。

于 2009-04-21T21:03:06.133 回答
0

字符串参数 = 新的 ParamEncoder(tableId).encodeParameterName(TableTagParameters.PARAMETER_PAGE))。. 以上将解决您的问题,并总结了@MetroidFan2002 所说的内容。

于 2011-03-31T17:16:18.147 回答