VRaptor 3 x display table

8 respostas
Y

Estou com um probleminha com a minha displaytable. Tenho um form onde eu tenho um <select> que informo a quantidade de itens que eu quero que apareçam na displaytable. Até aí funcionou tranquilo, o problema é quando clico nas colunas que estão com “sortable” e não chega o valor que está selecionado no campo quantidade no meu controller.
Outra coisa que acontece é quando clico na paginação da displaytable fica sempre na primeira página. Não sei se consegui ser claro, mas enfim…

Eis o meu jsp: Quando clico no submit consigo receber o valor selecionado na quantidade, mas quando clico na coluna da displayTable não.

&lt;form action="&lt;c:url value="/pacientes/buscar"/&gt;"&gt;
						&lt;div class="campo_texto"&gt;Quantidade &lt;/div&gt;
						&lt;select id="quantidade" name="quantidade" style="width: 220px"&gt;
							&lt;option id="quantidade-10" value="10"&gt;10&lt;/option&gt;
							&lt;option id="quantidade-20" value="20"&gt;20&lt;/option&gt;
							&lt;option id="quantidade-30" value="30"&gt;30&lt;/option&gt;
						&lt;/select&gt;
						&lt;input type="submit" class="input" value="   BUSCAR   " onclick="return validaBuscar();"&gt;

					&lt;display:table name="pacientes" id="pacientes" style="width:100%" class="listagem" requestURI="/pacientes/buscar"&gt;
					
									&lt;display:column title="Nome" sortable="true" &gt;
										<a  >
											${pacientes.nome} 
										</a>
									&lt;/display:column&gt;
									&lt;display:column title="CPF" property="cpf" sortable="true" headerClass="sortable" style="text-align:center;"/&gt;
									&lt;display:column title="Nascimento" format="{0,date,dd/MM/yyyy}" property="dataNascimento" sortable="true" headerClass="sortable" style="text-align:center;"/&gt;
									&lt;display:column title="Cadastro" format="{0,date,dd/MM/yyyy}" property="dataCadastro" sortable="true" headerClass="sortable" style="text-align:center;"/&gt;
									
					&lt;/display:table&gt;
&lt;/form&gt;

8 Respostas

Lucas_Cavalcanti

tenta trocar a linha do display-table por:

<display:table name="pacientes" id="pacientes" style="width:100%" class="listagem" requestURI="<c:url value="/pacientes/buscar"/>">
Y

Sim, já tentei fazer isso mas não mudou nada. Quando clico na coluna, dá um submit no form mas não envia os valores dos campos. Na verdade nunca entendi muito bem como a display:table funciona e nem as configurações mais avançadas, sempre foi algo meio “mágico” mas funcionava. Agora com o vraptor3 não consigo fazer funcionar a paginação e a ordenação.

Lucas_Cavalcanti

no requestURI vc precisa colocar a url da página atual…
ou seja, se vc usou a lógica /pacientes/listar pra mostrar a tabela, vc coloca /pacientes/listar como requestURI (sem o c:url)

tenta aí… aqui funcionou tranquilo num exemplo simples

Y

Não rolou. Mudando o requestURI para a página atual não entra no método de busca.
Com o requestURI="/pacientes/buscar" a url que vai quando clico na coluna para ordenar é : /pacientes/buscar?d-3651776-s=1&d-3651776-o=2&d-3651776-p=1
Na versão que está com o VRaptor 2 a url fica: /pacientes.buscar.logic?d-3651776-o=1&d-3651776-s=0&quantidade=30

Lucas_Cavalcanti

tenta fazer um exemplo mais simples e ve se funciona…

tipo faz uma lógica que só retorna uma lista com vários elementos, e vê se ordena e pagina direitinho…

aqui eu fiz esse teste e funcionou… a url final é algo do tipo que vc passou mesmo… não deve ser esse o problema…

Y

bom, fiz isso e funcionou mesmo. O problema maior deve ser que não está recebendo o parâmetro no meu controller e consequentemente nao está montando a lista.

Y

Descobri que é por causa do seguinte código que estava no final do meu método :

result.redirectTo(PacientesController.class).load();

Se eu colocar um result.forwardTo funciona

Lucas_Cavalcanti

é… o redirect atrapalha o displaytag mesmo

Criado 4 de março de 2010
Ultima resposta 9 de mar. de 2010
Respostas 8
Participantes 2