Estou usando webwork e apanhando um poquinho. A dúvida de agora é a seguinte: o WW está formatando tudo (datas, números) no formato americado - data=MM/DD/YYYY, grana=100.0. É possível alterar alguma configuração para que ele passe a exibir as informações da maneira como usamos no Brasil?
Outra coisa: em função do formato que ele usa, quando eu submeto alguma data a partir de uma página, por exemplo 02/08/2004, ele seta o meu objeto Date com “Oito de fevereiro de 2004” e não como “Dois de agosto”. Como eu faço para resolver isso?
Para resolver você vai ter que escrever seu prórprio converter pro objeto Date, um conversor que considere o Locale selecionado pelo usuário pra fazer a conversão é uma boa.
Não tenho nada planejado por hora, eu estava atolado com meu TG. Se todo mundo torcer direitinho pra minha apresentacao amanha e tudo der certo eu escrevo um rapidim :shock:
Com a sua dica, funcionou. O WW está encontrando a classe que escrevi. No entanto, ela não tá funcionando…
Quando sobrescrevo o método public Object convertValue(Map ognlContext, Object value, Class toType) … a variável “value” é do tipo String? Executando System.out.println(value.getClass()), foi isso que pude constatar (acho!). Então se ela é uma String, pq é que não consigo ver o valor dela quando executo System.out.println(value)?
Pois bem, no momento do “Preenchimento”, a varíavel é String e vou convertê-la para Date. Estou tentando fazer isso usando o método “parse” do “SimpleDateFormat”. Esse método usa uma String como parâmetro. E aí que eu garrei! Quando passo a varíavel “value” como parâmetro para o método ele lança uma exceção como se “value” não fosse String.
Tem alguma luz para me dar?
Esse código que postei, não é o que estou tentando fazer funcionar. Ainda estou estudando o funcionamento desse conversor, por isso os código não estão completos. O toType, no momento do preenchimento é Date.class. O código que não tá funcionando é:
public Object convertValue(Map ognlContext, Object value, Class toType){
if(toType == Date.class) {
return new SimpleDateFormat("dd/MM/yyyy").parse(value.toString());
} else {
return null;
}
}
No método “parse” já tentei usar “String.valueOf(value)” ao invés de “value.toString()”, mas tb não funcionou…
Olá Gleison, hj tive o mesmo problema que vc.
Minha primeira atitude foi fazer uma busca no GUJ e ver se achava algo e ví esse topico. Como ele não resolveu meu caso, apanhei um pouco e acabei descobrindo…
Não sei se vc já o resolveu, mas vou deixar registrado para quem tiver o mesmo problema…
String[] v = (String[]) value;
String date = v[0];
Assim vc consegue obter a String sem os ClassCastExceptions da vida…
Depois é só parsear:
return new SimpleDateFormat("dd/MM/yyyy").parse(date);