Olá, galera. Estou há 2 dias tentando resolver isso, mas continuo sem conseguir fazer um refresh na div da página.
Script da página:
<script>
$(document).ready(function() {
$("input:submit", ".demo").button();
$('input:submit').click(function(){
$.ajax({
url: '/spring/videos',
data : {name : $(this).attr("value")},
success: function(response) {$('.filmes_list').html(response)}
});
});
});
</script>
Tenho dúvida principalmente se o “sucess” está correto para fazer o refresh. Ao invés de html(), já tentei com load() e replaceWith() também. Sem sucesso.
Quando clico no button, a requisicão com o parâmetro via jquery chega ao servidor. Isso funciona, pois fiz Sysos no método do servidor para testar. Mas a resposta, que seria o refresh da div, não rola.
Código do servidor:
@RequestMapping(value = "/videos", method = RequestMethod.GET)
@ResponseBody
public ModelAndView filmesPorTipo(HttpServletRequest request, @RequestParam String name){
//Syso pra testar se a requisição chegou
System.out.println("ok");
//Syso pra teste de parametro.
System.out.println(name);
this.filmes = this.filmeDAO.listarFilmesPorTipo(name);
//esse for também é só pra teste.
for (Filme filme : filmes) {
System.out.println(filme.getNome());
}
this.modelAndView.addObject("filmes", this.filmes);
return modelAndView;
}
Dúvida: com esse tipo de retorno(model and view) é possível atualizar uma div ?
Dentro dessa div tem a lista de filmes que quero que seja carregada de acordo com o tipo de filme selecionado(através dos buttons).
E aqui está o body da pag.
<body>
<div id="panel_center">
<div class="demo">
<div class="ui-widget">
<input id="aventura" value="Aventura" type="submit" />
<input id="suspense" value="Suspense" type="submit" />
</div>
</div>
<div class="filmes_list" th:each="filme : ${filmes}">
<p>
<a th:href="@{/play(name=${filme.nome})}"><img th:src="${'resources/imagens/miniaturas/'+filme.nome}+'.jpg'" /></a>
<br/>
<span th:text="${filme.nome}"></span>
</p>
</div>
</div>
</body>
</html>