Estou tendo dificuldade em formatar o campo data de uma tela de cadastro.
Segue abaixo o JSP:
<label id="cpfCadText" for="data">Data Finalizacao:</label>
<input id="cpfCadLabel" class="required" type="date" name="tarefa.data" value="${tarefa.data }" />
A classe modelo desse cadastro e da seguinte maneira:
@NotNullprivateCalendardata;
Sei que no banco de dados ela deve ser inserida no seguinte formato “2014-04-15 00:00:00” mais não sei como ela vai como se o campo fosse nulo.
Acho que você tem que explicar melhor o seu problema.
Tá faltando muita informação aí
david.cs20
Tenho um campo “Imput” a qual entro com uma data porem ao tentar cadastrar no log da aplicação fala que o formato e nulo.
Porem estou dando entrada de maneira correta.
Rodrigo_Sasaki
Como você faz pra enviar esse valor pro servidor?
Ele está nulo indo da tela pro servidor? ou do servidor para o BD?
david.cs20
Do servidor pro banco.
Rodrigo_Sasaki
E como você está persistindo esse dado?
david.cs20
Da seguinte maneira:
Controller:
public void adiciona(Tarefa tarefa) {
validator.onErrorUsePageOf(TarefasController.class).novo();
dao.saveOrUpdate(tarefa);
result.redirectTo(TarefasController.class).lista();
}
Dao:
public void saveOrUpdate(Tarefa obj) throws HibernateException {
genericDAO.saveOrUpdate(obj);
}
GenericDao:
e qual o erro que ocorre quando você tenta gravar? Tem uma stacktrace?
david.cs20
15:58:42,274 DEBUG [ParametersInstantiatorInterceptor] There are conversion errors: [ValidationMessage{category=data, message=???is_not_a_valid_date???, parameters=null}]
Rodrigo_Sasaki
Isso não é um erro, é uma mensagem de DEBUG
david.cs20
Sim. Mais esse e o unica mensagem de retorno que tenho não da um erro ou null point exepception. A mensagem e só essa que o campo foi ou esta nulo.
Rodrigo_Sasaki
Entendi, vamos tentar explorar mais. Três perguntas:
1 - Sua data está indo nula?
2 - Se você mandar uma data válida, ele grava normalmente?
3 - Seu campo da tabela permite valores nulos?
david.cs20
1 não
2 não
3 não
Lucas_Cavalcanti
There are conversion errors: [ValidationMessage{category=data, message=???is_not_a_valid_date???
a data que vc tá passando não é uma data válida.
Como vc tá passando ela?
PS: Se vc colocasse no título que era VRaptor era mais fácil de responder sua dúvida
david.cs20
Me desculpe quanto ao titulo foi falta de atenção mesmo.
Vamos la No meu JSP o imput esta da seguinte maneira:
E o modelo da classe esta declarado da seguinte maneira:
private Calendar data;
Lucas estava vendo alguns exemplos e tentando implementar um CalendarConverter porem sem muito sucesso segue abaixo a classe que tentei implementar:
@Convert(Calendar.class)@ApplicationScopedpublicclassCalendarConverterimplementsConverter<Calendar>{publicCalendarconvert(Stringvalue,Class<?extendsCalendar>arg1,ResourceBundlearg2){try{StringdataEmTexto=value;Calendardata=null;Datedate=newSimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);data=Calendar.getInstance();data.setTime(date);returndata;}catch(ParseExceptione){// TODO Auto-generated catch blocke.printStackTrace();returnnull;}catch(java.text.ParseExceptione){// TODO Auto-generated catch blocke.printStackTrace();returnnull;}}}
Lucas_Cavalcanti
Você consegue colocar um breakpoint nessa classe e rodar o servidor em debug, pra ver qual é o valor que está chegando aí?