Estou utilizando displaytag para paginar com Struts 1.
Quando escolho por exemplo a página 5 nos links de paginação e depois deleto algum registro desta página (Chamo a Action que exclui o registro e depois chama a Action de listra novamente) ao invés de permanecer na página 5 é listada a página 1.
Como eu faço para manter a listagem da página 5 após a deleção?
Teria algum parametro para passar?
Sou iniciante com taglib.
Meu código é este:
<display:table name="${idiomas}" export="false" pagesize="15" defaultsort="1" requestURI="listarIdioma.do" class="tabela_display medio" uid="idioma">
<display:column property="idioma" title="Idioma" class="tabela_display" style="width: 200px;"/>
<display:column title="Alterar" class="tabela_display" href="carregarIdioma.do" paramId="idioma.id" paramProperty="id">
<img src="icones/editar.png" border="0"/></display:column>
<display:column title="Excluir" class="tabela_display" ><a onClick="confirmBoxLista('${idioma.id}')" style="cursor: pointer">
<img src="icones/deletar.png" width="24" height="24" border="0"/></a></display:column>
</display:table>
Brow! Também estou com esse problema. Se encontrar algo me avisa blz?!
Tipo eu fiz isso em uma aplicação aqui. Primeiro têm que criar um filtro, depois criei uma classe util para extrair o numero da pagina, ordenação. O atributo setado na sessão você utiliza nos links que voltam para sua página.
public class DisplayTagPageTrackingFilter implements Filter {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
if ("GET".equals(request.getMethod()) && (null != request.getQueryString() && request.getQueryString().length()>0)) {
String dsAaction = request.getRequestURI();
dsAaction = StringUtils.substringAfterLast(dsAaction, "/");
dsAaction = StringUtils.substringBeforeLast(dsAaction,".");
final String queryString = request.getQueryString();
final String pageQueryString = DisplayTagUtil.extractPageNameAndValue(queryString);
if (pageQueryString != null){
request.getSession().setAttribute(dsAaction + "_displaytag_pages",pageQueryString);
}
}
chain.doFilter(req, resp);
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public void init(FilterConfig arg0) throws ServletException {
//
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// * @see javax.servlet.Filter#destroy()
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public void destroy() {
//
}
}
public class DisplayTagUtil {
private static Pattern extractPagePattern = Pattern.compile("(?sim)(d-\\d+-p=\\d+)");
private static Pattern extractSortPattern = Pattern.compile("(?sim)(d-\\d+-s=\\d+)");
private static Pattern extractOrderPattern = Pattern.compile("(?sim)(d-\\d+-o=\\d+)");
public static String extractPageNameAndValue(String queryString) {
if (null == queryString) {
return null;
}
StringBuilder ret = new StringBuilder();
extractPagePattern(ret, queryString);
extractSortPattern(ret, queryString);
extractOrderPattern(ret, queryString);
if(ret.length() > 0){
return ret.toString();
}
return null;
}
public static StringBuilder extractPagePattern(StringBuilder ret, String queryString){
Matcher m = extractPagePattern.matcher(queryString);
int i=0;
for (;m.find();i++) {
//if (i > 0) {
ret.append("&");
//}
ret.append(m.group());
}
if (i==0) {
return null;
}
return ret;
}
public static StringBuilder extractSortPattern(StringBuilder ret, String queryString){
Matcher sort = extractSortPattern.matcher(queryString);
int i=0;
for (;sort.find();i++) {
//if (i > 0) {
ret.append("&");
//}
ret.append(sort.group());
}
if (i==0) {
return null;
}
return ret;
}
public static StringBuilder extractOrderPattern(StringBuilder ret, String queryString){
Matcher order = extractOrderPattern.matcher(queryString);
int i=0;
for (;order.find();i++) {
//if (i > 0) {
ret.append("&");
//}
ret.append(order.group());
}
if (i==0) {
return null;
}
return ret;
}
}
<html:image srcKey="img.botao.salvar" onclick="action='manterCerca.do?metodo=incluir${manterCerca_displaytag_pages}'"/>