Olá pessoal
Estou tentando passar uma data (LocalDate do JodaTime) via path
Ele envia dessa forma:
/relatorio/2011-01-01/2011-01-11/12
na hora de receber:
@Path("/relatorio/{dataInicial}/{dataFinal}/{filial.id}")
public void relatorio(LocalDate dataInicial, LocalDate dataFinal, Filial filial) {
O problema é que as datas vem nulas. O id da filial vem correto.
Obrigado
vc que está preenchendo a url ou ela está vindo assim de um redirect?
Eu que estou preenchendo:
“relatorio/”+dataInicial+"/"+dataFinal+"/"+filial.getId();
se vc está fazendo isso em java, vc poderia usar:
result.redirectTo(Controller.class).relatorio(dataInicial, dataFinal, filial.getId());
o problema é que o VRaptor só vai converter a data usando o estilo do locale. Se estiver como pt-BR a data deveria ser 02/03/2011. Daí vc vai ter que usar regexes para declarar as datas (por padrão o VRaptor não aceita / dentro da variavel da url)
outra coisa que vc pode fazer é criar um conversor pra esse formato de data
[quote]se vc está fazendo isso em java, vc poderia usar:
[/quote]
Eu estava fazendo assim, mas preciso abrir uma nova janela para a impressão, o que só consigo fazer diretamente via html. Ou seja, envio a url já montada.
Em relação a montar a url com datas como 01/01/2011 não vou ter problema com as barras?
Onde posso encontrar um modelo de conversor para o formato de data: 2011-01-01. Eu não tenho nem idéia de onde começar.
Obrigado.
crie a classe:
@Convert(LocalDate.class)
public class CustomLocalDateConverter extends LocalDateConverter {
//delegate constructor
public LocalDate convert(String value, Class<? extends LocalDate> type, ResourceBundle bundle) {
if (value == null) return null;
try {
return LocalDate.fromDateFields(new SimpleDateFormat("yyyy-mm-dd").parse(value));
} catch (FormatException e) {
return super.convert(value, type, bundle);
}
}
}
Ou altere o locale da aplicação no web.xml.
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
<param-value>pt_BR</param-value>
</context-param>
Lucas e Garcia, obrigado pela ajuda.
Pensei melhor e estou abrindo a nova janela antes da entrada dos dados para a geração do relatório.
Assim não vou precisar do converter e a solução ficou mais simples.