¿ 如何使用 DisplayTag(和 Spring MVC)对服务器端进行分页?
我的控制器代码是这样的:
@RequestMapping("/cuenta/refreshCombos.do")
public ModelAndView refreshCombos(HttpServletRequest request, HttpSession session,
@RequestParam(required= false, value="todas") Boolean todas,
@RequestParam("idBanco") Long idBanco) throws ParseException{
Map<String, Object> resul = new HashMap<String, Object>();
@SuppressWarnings("rawtypes")
Map paramMap = WebUtils.getParametersStartingWith(request, "d-");
if (paramMap.size() == 0) {
if (idBanco == 0){
cuentaList = obtenerCuentas(0L, true);
}
if (idBanco != 0){
cuentaList = obtenerCuentas(idBanco, false);
}
}
WebUtils.setSessionAttribute(request, "cuentaList", cuentaList);
resul.put("cuentas", cuentaList);
return forward("/cuenta/informeCuentas", resul);
}
还有我在 JSP 中的 DisplayTag,如下所示:
<display:table class="displayTags_wrapper" uid="cuenta" name="sessionScope.cuentaList" pagesize='50' defaultsort="1" defaultorder="ascending" requestURI="">
<display:column property="becado" sortable="true" title="Becado" maxLength="25" />
<display:column property="apellido" sortable="true" title="Titular Cuenta" maxLength="25" />
<display:column property="nroCuil" sortable="true" title="CUIL" maxLength="22" />
<display:column property="apellidoRR" sortable="true" headerClass="sortable" title="RR" maxLength="25" />
<display:setProperty name="basic.empty.showtable" value="true" />
<display:setProperty name="paging.banner.group_size" value="35" />
<display:setProperty name="paging.banner.item_name" value="cuenta" />
<display:setProperty name="paging.banner.item_names" value="cuentas" />
<display:setProperty name="paging.banner.onepage" value=" " />
</display:table>
这样,我的寻呼机工作正常,但客户端...
对服务器端分页有任何帮助或修改吗?
问候,
CaktusJP.
请参阅 http://www.displaytag.org/1.2/tut_externalSortAndPage.html。这个想法是将
org.displaytag.pagination.PaginatedList
的实例而不是 java.util.List
传递给标签。
如果是这种情况,那么标签将生成带有未编码参数的 href,用于要加载的页码、要使用的排序标准和方向(asc、desc)以及使用的可选搜索 ID,例如,用于缓存您的服务器端查询结果。
在这种情况下,您有责任读取这些参数并执行查询以创建
PaginatedList
实例。