Converter de String para Calendar

12 respostas
Luca

Olá

A classe LocaleBasedCalendarConverter tem o método

public java.util.Calendar convert(java.lang.String value,
                                  java.lang.Class<? extends java.util.Calendar> type,
                                  java.util.ResourceBundle bundle)

Só que não encontrei nenhum explicação que me ajudasse a fazer isto funcionar. Alguém sabe explicar o que precisa ser feito em uma aplicação usando o VRaptor 3.2 para converter uma String para um Calendar e como fornecer a localização?

[]s
Luca

12 Respostas

G

Componentes Utilitários Opcionais
http://vraptor.caelum.com.br/documentacao/componentes-utilitarios-opcionais/

[i]Converters Localizados

Existem alguns converters para números que são localizados, ou seja, que consideram o Locale atual para converter os parâmetros. Você pode registrá-los adicionando o pacote br.com.caelum.vraptor.converter.l10n no seu web.xml:[/i]

<context-param> <param-name>br.com.caelum.vraptor.packages</param-name> <param-value> br.com.caelum.vraptor.util.outros.pacotes..., br.com.caelum.vraptor.converter.l10n </param-value> </context-param>

Lucas_Cavalcanti

garcia-jj, o l10n só tem converters numéricos…

Luca, na última versão oficial (a 3.2.0), ele busca o Locale no padrão do JSTL, por exemplo nesse parâmetro do web.xml:

<context-param>
		<param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>
		<param-value>pt_BR</param-value>
	</context-param>

ou usando o request.setLocale() em algum lugar, ou usando a própria api do jstl pra setar o locale (<fmt:setLocale nas jsps, não lembro como é a versão programática disso)

na versão nova vc pode sobrescrever a interface Localization, e passar o locale que vc quiser, se quiser eu gero um snapshot com isso

[]'s

G

My bad. Desculpas :thumbup:

Lucas_Cavalcanti

My bad. Desculpas :thumbup:
sem problemas :wink:

Luca

Olá

Parece fácil. E talvez seja mesmo. Só que nada do que fiz aqui funcionou. Talvez o manual esteja muito resumido para mim.

Ainda não tenho a mínima ideia como converter uma String para Calendar usando algumas facilidade automágica do VRaptor. Existe algum exemplo em algum lugar?

[]s
Luca

Lucas_Cavalcanti

vc quer fazer isso no meio do código, ou na hora de popular os parâmetros da requisição?

Luca

Olá

Quero mostrar na tela como resultado de processamento. A conversão vai no meio do código (que nem sei como tentar) ou na hora de construir uma linha do JSP.

[]s
Luca

Lucas_Cavalcanti

se for no jsp, vc pode fazer direto pelo fmt:parseDate

ou usar new SimpleDateFormat(“dd/MM/yyyy”).parse(…) ou ainda DateFormat.getDateInstance(locale).parse(…)

os converters do VRaptor são mais pra popular os parâmetros mesmo (o que não impede de vc recebê-los no construtor e usá-los)

Priuli

Tem uma classe chamada DateFormat, neste projeto ve se pode ajudar:

http://code.google.com/p/opensutils-br4j/wiki/DateFormat

Luca

Olá

Felipe

Obrigado, vou ver seu projeto. Na verdade já foi resolvido de outra forma menos elegante do que seria usando os converters do VRaptor. Esta parte de converters é uma das que senti falta de uma documentação mais completa no VRaptor (tem outras).

[]s
Luca

Lucas_Cavalcanti

Muitas partes do VRaptor estão com a documentação insuficiente =(

A gente tentou deixar a maioria da API o mais fácil e intuitivo possível para que não precise recorrer à documentação, mas tem casos (como os converters) em que não é tão intuitivo assim.

Luca, se não te atrapalhar, vc poderia por favor abrir issues no VRaptor pedindo documentação onde falta ou onde está insuficiente?

Abraços

G

é importante sempre reportar essas coisas para que o pessoal possa fazer os ajustes. essa parte dos converters eu andei melhorando há algumas semanas, mas é interessante saber de ti qual foi a dificuldade para tentar melhorar os docs.

Criado 22 de novembro de 2010
Ultima resposta 23 de nov. de 2010
Respostas 12
Participantes 4