Como setar um Date no formBean Struts 1

3 respostas
I

Pessoal, estou com problemas em popular um objeto do tipo Date no formbean

tenho um formulario onde mostro a data para o usuario na maneira de texto
<fmt:formatDate value="${beanForm.dataAbertura}" type="date" pattern="dd/MM/yyyy HH:mm" />

porem preciso parar esta data novamente para a action, sendo assim populando o beanForm

tento fazer isto utilizando o
<html:form method="post"	action="usuario.do?metodo=inserir">
<html:hidden property="dataAbertura"  />
<html:submit value="Enviar" />
</html:form>

o sistema me retorna um erro, pois não consegue pegar a informação do

exceção:
javax.servlet.ServletException: BeanUtils.populate
	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
	org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

java.lang.IllegalArgumentException: Cannot invoke usuario.beanForm.setDataAbertura - argument type mismatch
	org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
	org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
	org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
	org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
	org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
	org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
	org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
	org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.

gostaria de saber como persistir este objeto no formBean sem ter que usar o html:hidden ou usa-lo de uma maneira funcional!

3 Respostas

D

amigo, posso estar enganado mas segundo o erro que vc mostrou

java.lang.IllegalArgumentException: Cannot invoke usuario.beanForm.setDataAbertura - argument type mismatch

acho que a pagina esta te enviando um tipo de variavel e vc espera receber outra.

I

Danfael:
amigo, posso estar enganado mas segundo o erro que vc mostrou

java.lang.IllegalArgumentException: Cannot invoke usuario.beanForm.setDataAbertura - argument type mismatch

acho que a pagina esta te enviando um tipo de variavel e vc espera receber outra.

exatamente!!!
estou enviando para ele uma String(infelizmente) porem quero enviar uma data.

o dataAbertura é um Date
para pegar no formulario é tranquilo… agora so quero passar essa informação pro bean!

aqui segue o codigo html que é gerado

<font>21/08/2009 19:08</font>
<input type="hidden" name="dataInclusao" value="Fri Aug 21 19:08:01 GMT 2009">
<input type="submit" value="Enviar">
I

Como o tempo não pode parar, usei uma solução alternativa!

fiz o seguinte, criei um novo metodo no meu Bean

setDataAberturaS(String dataAbertura)

recebo a String com a data, uso um SimpleDateFormat e passo esse valor a variavel correta!

caso alguem saiba uma solução melhor, por favor poste!

obrigado!

Criado 21 de agosto de 2009
Ultima resposta 24 de ago. de 2009
Respostas 3
Participantes 2