Bom dia.
Alguém saberia me dizer se o Spring 3 possuí algum “facilitador” para fazer uma paginação em uma view ?
Porque tenho uma página onde é exibido todos os registros de uma entidade específica, porém não é viável mostrar tudo numa página só, ficaria extremamente lento, por isso quero fazer uma paginação e mostrar 10 registros por página, pensei em fazer um @Controller que recebe um range e ele retorna os registros do banco dentro deste range, mas a idéia se complicou, ficaria muito bagunçado.
Portanto se o Spring tiver algo pronto para a paginação, facilitaria muito minha vida.
Obrigado.
Usa o Display-tag na view e pagina o banco pelo hibernate/jpa ou pelo proprio jdbctemplate
sempre faço um rotina na mão tambem não conheco nenhuma biblioteca, a não ser o display tag mesmo. Mais nunca usei ele .
Tem algum exemplo com o jdbctemplate ? ou até mesmo um link pra mim dar uma olhada.
Obrigado.
Já pensou em usar algum componente JQuery (ou algum outro javascript) pra fazer a paginação?
Eu particularmente acho um saco ficar clicando “próxima página” e esperar o servidor buscar os próximos registros e atualizar a tabela. Com javascript, a tabela fica rápida e sem o “delay” ao trocar de página.
[quote=Rendrys]Já pensou em usar algum componente JQuery (ou algum outro javascript) pra fazer a paginação?
Eu particularmente acho um saco ficar clicando “próxima página” e esperar o servidor buscar os próximos registros e atualizar a tabela. Com javascript, a tabela fica rápida e sem o “delay” ao trocar de página.[/quote]
É, vou fazer algo assim mesmo, só tenho que pensar num modo de usar o JQuery, porque os dados serão exibidos em thumbnails(quadrados com imagem+titulo+descrição)…então quero exibir 10 thumbnails por pagina.
Mas deve ser simples, vou tentar aqui e posto a solução, obrigado pela ajuda ai.
Tem algum exemplo com o jdbctemplate ? ou até mesmo um link pra mim dar uma olhada.
Obrigado.[/quote]
Primeiro resultado do google por “pagination jdbctemplate”
Eu tenho esse trecho num projeto de teste meu:
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<head>
<title>Blog do Adriano</title>
<script type='text/javascript'
src='<c:url value="/resources/js/jquery-1.7.2.min.js"/>'></script>
</head>
<script type="text/javascript">
$(function() {
var dados = jQuery(this).serialize();
var proximo = 1;
jQuery.ajax({
type : "get",
url : "pagina/" + proximo,
data : dados,
success : function(data) {
$('#conteudo').append( data);
}
});
jQuery('#ajax_form').submit(function() {
var dados = jQuery(this).serialize();
var proximo = 2;
jQuery.ajax({
type : "get",
url : "pagina/" + proximo,
data : dados,
success : function(data) {
$('#conteudo').append( data);
//alert(data);
}
});
return false;
});
});
jQuery(document).ready(function() {
});
</script>
<div id="conteudo"></div>
<form method="post" action="" id="ajax_form">
<label><input type="submit" name="enviar" value="Mais" /></label>
</form>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<head>
<script type='text/javascript'
src='<c:url value="/resources/js/jquery-1.7.2.min.js"/>'></script>
</head>
<div>
<c:forEach items="${posts}" var="post">
<c:url var="url" value="/posts/${post.id}" />
<h2>
<a >${post.title}</a>
</h2>
${post.body}
<h3></h3>
<p >
<time> ${post.dataCriacao} </time>
</p>
</c:forEach>
<%-- <c:if test="${proximo != 0 }"> --%>
<%-- <a href="<c:url value="/${proximo}"/>">Próximo</a> --%>
<%-- </c:if> --%>
<%-- <c:if test="${anterior != 0 }"> --%>
<%-- <a href="<c:url value="/${anterior}"/>">Anterior</a> --%>
<%-- </c:if> --%>
</div>
E no controller ficou simples pois uso Spring Data Jpa :
@Controller
@RequestMapping("/")
public class MediatorController {
@Autowired
private PostRepository postRepository;
@RequestMapping(value = "/" , method = RequestMethod.GET)
public String post(Model model) {
//return posts(1, model);
return "index/index";
}
@RequestMapping(value = "pagina/{page}", method = RequestMethod.GET)
public String posts(@PathVariable Integer page, Model model) {
Sort sort = new Sort(Direction.DESC, "id");
Pageable pageRequest = new PageRequest(page-1, 5 , sort);
Page<Post> posts = postRepository.findAll(pageRequest);
model.addAttribute("posts", posts.getContent());
model.addAttribute("pagina", page);
Integer proximo = 0;
Integer anterior = 0;
if (posts.hasNextPage()){
proximo = page + 1;
}
if (posts.hasPreviousPage()){
anterior = page - 1;
}
model.addAttribute("proximo", proximo);
model.addAttribute("anterior", anterior);
return "index/posts";
}
}
- Estou trabalhando nele ainda