我目前正在为Liferay开发一个portlet (使用Spring MVC框架)。现在,我刚刚使用displaytag库在portlet上显示的列表上实现分页。
我现在的问题是,我需要检测当前请求是否已由displaytag库的分页控件启动。我发现在进行分页时,会在URL中添加一个参数,该参数类似于"d-4157739-p=2“,表示所显示的当前页面。所以我可以这样做
int isPagingRequest = PortletRequestUtils.getIntParameter(request, "d-1332617-p", -1);..and如果isPagingRequest (我可以将其更改为布尔值)有一个值,那么请求已经由displaytag分页发起。然而,这是非常糟糕的编码,所以我想避免它。此外,"d“和"p”之间的数字变化,这使得它真的很难检测到。
有没有人建议我如何检测当前请求是否被寻呼触发?
非常感谢
发布于 2009-04-22 00:39:27
Displaytag提供了一个类"ParamEncoder“,它(我认为它在它的构造函数中)根据你的表的表名( id或uid元素--必须设置它才能产生有效的校验和(d和-(参数)之间的数字)来产生校验和。看看这个。TableTagParameters还包括参数所需的常量-因此结合使用这两个常量,您可以从请求中检索适当的变量键。
发布于 2009-04-21 21:03:06
一种选择是将您自己的参数添加到requestURI属性的值中。例如,您可以添加以下内容:
requestURI="mylistsource.action?ispage=true"添加到table标记,其中mylistsource.action是最初生成列表的服务器操作。
然后您可以在服务器上查找"ispage“参数。
发布于 2011-04-01 01:16:18
字符串参数=新的ParamEncoder(tableId).encodeParameterName(TableTagParameters.PARAMETER_PAGE)).。以上将解决您的问题,并总结@MetroidFan2002所说的内容。
https://stackoverflow.com/questions/773700
复制相似问题