Olá!
Estou tentando enviar a data atual através de um input hidden no meu form:
<% pageContext.setAttribute("dtInclusao", new java.util.Date()); %>
<input name="contato.dtInclusao" type="hidden" value="<fmt:formatDate pattern="dd/MM/yyyy" value="${dtInclusao}" />"/></input>
O erro é:
org.apache.jasper.JasperException: /WEB-INF/jsp/contato/formulario.jsp(45,54) According to TLD or attribute directive in tag file, attribute value does not accept any expressions
Alguém sabe explicar o motivo?
Abraço!
Descobri que o problema é no value="${now}":
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>
<% pageContext.setAttribute("now", new java.util.Date()); %>
<fmt:formatDate value="${now}" pattern="dd/MM/yyyy" />
A mensagem é:
Multiple annotations found at this line:
- Invalid attribute (value).
- Invalid attribute (value).
O Eclipse tá doidão, não existe dois “values” na linha. E mesmo removendo o pageContext a mensagem persiste. O.o
Bom, como não descobri o motivo do erro no “value”, resolvi de outra forma, até mais elegante do que mandar a data oculta pela JSP.
Deixei o atributo preparado para gravar a data automáticamente quando insiro um registro.
@Column(name="dt_inclusao")
@Temporal(value=TemporalType.DATE)
@DateTimeFormat(pattern="dd/MM/yyyy")
private Date dtInclusao = Calendar.getInstance().getTime();
Simples assim. =)
obs: neste caso, se trata de um contato, que o usuário do sistema vai ler e excluir se desejar, não precisa editar o contato, mas se precisasse editar poderia fazer assim:
@Column(name="dt_inclusao", updatable=false)
@Temporal(value=TemporalType.DATE)
@DateTimeFormat(pattern="dd/MM/yyyy")
private Date dtInclusao = Calendar.getInstance().getTime();
Colocando o parâmetro “updatable=false” os dados do contato poderiam ser editados mas a data não seria deletada do banco ao efetuar o update do registro.
Abraço!