Tag <f:convertDateTime> JSF2.0

9 respostas
L

Olá pessoal estou precisando de uma ajuda, que creio ser bem simples.
estou fazendo um entrada de dados usando a tag <f:convertDateTime/> [i]JSF2[/i], mas aí vem o erro, e não consigo nem executar o arquivo XHTML, diz que:
não é possível converter.

segue o código…

<h:outputLabel value="Data:"/>
 <h:inputText value="#{notaFiscalBean.notaFiscal.data}">
     <f:convertDateTime  pattern="dd/MM/yyyy" timeZone="GMT-3"/>    
</h:inputText><br/>

tentei assim também

<h:outputLabel value="Data:"/>
 <h:inputText value="#{notaFiscalBean.notaFiscal.data}">
     <f:convertDateTime  pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo">    
</h:inputText><br/>

fico no aguardo, não consegui achar respostas porém casos parecidos aqui no fórum…

obrigado

9 Respostas

V

Tente usar o GMT assim:

<f:convertDateTime  pattern="dd/MM/yyyy" timeZone="GMT-03:00"/>

Eu custumo usar o locale em algum bean, assim:

<f:convertDateTime type="date" locale="#{bean.locale}" />
L

Victor tentei usar dessa forma…

<h:outputLabel value="Data:"/>
<h:inputText value="#{notaFiscalBean.notaFiscal.data}">
    <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" timeZone="GMT-03:00"/>    
</h:inputText><br/>

como vc me disse…

segue o erro…

An Error Occurred:

j_idt13:j_idt19: não foi possível converter 'java.util.GregorianCalendar[time=1310123549274,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/Sao_Paulo",offset=-10800000,dstSavings=3600000,useDaylight=true,transitions=129,lastRule=java.util.SimpleTimeZone[id=America/Sao_Paulo,offset=-10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=9,startDay=15,startDayOfWeek=1,startTime=0,startTimeMode=0,endMode=3,endMonth=1,endDay=15,endDayOfWeek=1,endTime=0,endTimeMode=0]],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2011,MONTH=6,WEEK_OF_YEAR=28,WEEK_OF_MONTH=2,DAY_OF_MONTH=8,DAY_OF_YEAR=189,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=12,SECOND=29,MILLISECOND=274,ZONE_OFFSET=-10800000,DST_OFFSET=0]' em uma sequência.

no aguardo…

L

Victor completando a informação, no meu modelo o atributo esta criado da seguinte forma:

@Temporal (TemporalType.DATE)
private Calendar data = Calendar.getInstance();

no aguardo…

V

Luciano, não achei nenhuma referência de uso desta tag com atributos do tipo java.util.Calendar.

É impeditivo usar java.util.Date?

Detalhes aqui: http://download.oracle.com/javaee/1.4/tutorial/doc/JSFPage7.html#wp127641

L

Victor, vc usaria a tag de que forma?
e a declaração do atributo como devo fazer?

abração

L

Victor, consegui resolver.
porem tive que declarar o tipo do atributo como Date
muito obrigado pela atenção.
Abraços

L

Victor, só por informação mesmo, consegui resolver de uma forma melhor.
o atributo ficou como Calendar, anotado com @Temporal(TemporalType.DATE)
dessa forma que se segue:

@Temporal(TemporalType.Date)
private Calendar data = Calendar.getInstance();

e no binding passei como data.time

dessa forma…

<h:outputLabel value="Data:"/> <h:inputText value="#{notaFiscalBean.notaFiscal.data.time}"> <f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT-03:00"> </h:inputText><br/>
espero que sirva de ajuda pra alguém…

grande abraço

V

Boa solução, Luciano.
Acho que já pode colocar o [RESOLVIDO] no título do tópico, né?
Valeu!

L

[RESOLVIDO]

Criado 7 de julho de 2011
Ultima resposta 11 de jul. de 2011
Respostas 9
Participantes 2