[RESOLVIDO]Retornar lista com Vraptor

8 respostas
vasilvei

Boa tarde estou com a seguinte dificuldade, tenho uma tabela no postgres que tem um campo data, esta em formato yyyy/mm/dd, ela aceita gravar em outros formato, mas lê somente nesse formato, então eu tive que usar a seguinte HQL para formatar a data:

public List<Funcuser> lista(Integer num) {
        Session session = Hibernate.getSession();
        List<Funcuser> list = null;
        try {


            list = session.createQuery(
                    "select  to_char(dtadmissao, 'dd/MM/yyyy') as dtadmissao "
                    + "from  Funcuser").list();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.close();
        }

        return list;

    }

e tenho o seguinte em uma classe FuncuserController, que uso Vraptor:

@Get
    @Restrito
    @Path("/funcuser/{num}")
    public List<Funcuser> funcuser(Integer num) {

        //insere a url utilizada para a paginacao
        paginacao.setUrl("/funcuser");

        paginacao.setSelecionado(num);
        //seleciona o total de registros
        paginacao.setTotal(dao.getTotalRegistros());
        paginacao.getSelecionado();
        //montando os links para listar
        MontaPaginacao.montarPaginacao(paginacao, num);

        result.include("paginacao", paginacao);

        return dao.lista(num);

    }

em o seguinte jsp

<table class="table">
                <thead>
                    <tr>
                       
                       
                        <th>Dt. Admissão</th>
              
                    </tr>
                </thead>
                <tbody>
                    <c:forEach items="${funcuserList}" var="funcuser">
                        <tr id="comcor" >
          
                  
                            <td id="tdlinha">${funcuser.dtadmissao }</td>
  
                            </td>
                        </tr>
                    </c:forEach>
                </tbody>
            </table>

porém esta dando um erro:

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/funcuser/funcuser.jsp at line 45

42:                         <tr id="comcor" >
43:           
44:                   
45:                             <td id="tdlinha">${funcuser.dtadmissao }</td>
46:   
47:                        


Stacktrace:

Como eu poderia resolver isso!

8 Respostas

Tenkara_Kiddo

Boa tarde Vasilvei,
eu não sei como resolver esse porem ja tive o mesmo problema com formatação de datas
e utilizei JSTL para formatar com uma HQL normal

essa pagina explica direitinho o uso de jstl pra formatar eu achei mto util quando precisei

http://www.java2s.com/Tutorial/Java/0380__JSTL/FormatDatewithPattern.htm

espero ter ajudado
abraços.

A

Bem eu uso o pacote org.joda.time para manipular datas.
link: http://sourceforge.net/projects/joda-time/files/joda-time/1.6.2/joda-time-1.6.2-bin.tar.gz/download
link: http://sourceforge.net/projects/joda-time/files/joda-time-hibernate/1.2/joda-time-hibernate-1.2-src.tar.gz/download
link: http://sourceforge.net/projects/joda-time/files/joda-time-jsptags/1.0.2/joda-time-jsptags-1.0.2.tar.gz/download
link: http://sourceforge.net/projects/joda-time/files/joda-time-i18n/0.1/joda-time-i18n-0.1.tar.gz/download

Fica assim:

No model importo org.joda.time.LocalDate;
No atributo:

@Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDate")
   @NotNull
   LocalDate dataFormula;

no jsp tem que usar no topo :

ai num input qualquer:

&lt;label for="dataFormula"&gt; 	Data Formula: 	&lt;/label&gt; 
		&lt;input id="dataFormula" size="15" class="datepicker"
			type="text" name="formula.dataFormula" 
			value="
				&lt;joda:format pattern="dd/MM/yyyy" value= "${formula.dataFormula}" /&gt;
			"
		 /&gt;

o Vraptor cuida do resto (fazer as conversoes de formatos) …

Lucas_Cavalcanti

funcuser.dtadmissao

existe o método Funcuser#getDtadmissao()?

vasilvei

sim existe, ele trás a data, sertinho do banco, e formata ela, porém, no jsp que esta dando erro.

Lucas_Cavalcanti
<td id="tdlinha">${funcuser.dtadmissao }</td>

o erro é aqui…

a outra opção é o funcuser não ser um Funcuser…

esse select:

"select  to_char(dtadmissao, 'dd/MM/yyyy') as dtadmissao "  
                   + "from  Funcuser"

não retorna uma lista de Funcuser, ele retorna uma lista de String, esse é o problema

vasilvei

como eu poderia resolver isso…

vasilvei

Valeu Aí galera pela ajuda, muito obrigado mesmo, eu segui a dica do admwagner, e funcionou.

Abraço.

A

fico feliz por ter ajudado.

abs.

Criado 3 de fevereiro de 2011
Ultima resposta 3 de fev. de 2011
Respostas 8
Participantes 4