Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

estar dando esse erro ao converte

<h:body>

Novo Livro

<h:form> <h:messages/> Dados do Livro <h:panelGrid columns="2">
            <h:outputLabel value="Titulo:" for="titulo" />
            <h:inputText id="titulo" value="#{livroBean.livro.titulo}" required="true" requiredMessage="Otitulo e obrigatorio" 
            validatorMessage=" o titulo nao pode ter mais que 40 caracter">
            <f:validateLength maximum="40"/>
            </h:inputText>

            <h:outputLabel value="ISBN:" for="isbn" />
            <h:inputText id="isbn" value="#{livroBean.livro.isbn}" />

            <h:outputLabel value="Preço:" for="preco" />
            <h:inputText id="preco" value="#{livroBean.livro.preco}" />

            <h:outputLabel value="Data de Lançamento:" for="dataLancamento"/>


            <h:inputText id="dataLancamento"value="#{livroBean.livro.dataLancamento}" >
                 <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo"/>

            </h:inputText>

        </h:panelGrid>
    </fieldset>
    <fieldset>
        <legend>Dados do Autor</legend>
        <h:outputLabel value="Selecione Autor:" for="autor" />
        <h:selectOneMenu value="#{livroBean.autorId}" id="autor">
            <!-- combobox mostra nome para escoler -->
            <f:selectItems value="#{livroBean.autores}" var="autor"
                itemLabel="#{autor.nome}" itemValue="#{autor.id}" />
        </h:selectOneMenu>
        <h:commandButton value="Gravar Autor"
            action="#{livroBean.gravarAutor}" />
        <!--grava autor escolido  -->

        <h:dataTable value="#{livroBean.autoresDoLivro}" var="autor">
            <h:column>
                <!-- aqui pega os autores e mostra na tela -->
                <h:outputText value="#{autor.nome}" />
            </h:column>
        </h:dataTable>
    </fieldset>

    <h:commandButton value="Gravar" action="#{livroBean.gravar}" />
    <!--grava todos os dados do formulario  -->
</h:form>
<h:dataTable id="tabelaLivros" value="#{livroBean.livros}" var="livro">
    <h:column>
        <f:facet name="header">Titulo</f:facet>
        <h:outputText value="#{livro.titulo}" />
        <!-- mostra na tela no titulo do livro -->
    </h:column>
    <h:column>
        <f:facet name="header">ISBN</f:facet>
        <h:outputText value="#{livro.isbn}" />
    </h:column>
<h:column>
<f:facet name="header">preço</f:facet>
<h:outputText value="#{livro.preco}"/>
</h:column>
<h:column>
<f:facet name="header">Data</f:facet>
<h:outputText value="#{livro.dataLancamento.time}">

<f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo"/> esse e o erro

javax.faces.convert.ConverterException: j_idt4: dataLancamento: não foi possível converter 'java.util.GregorianCalendar [time = 1579738462506, areFieldsSet = true, areAllFieldsSet = true, leniente = true, zona = sun.util.calendar.ZoneInfo [id = "America / Sao_Paulo", deslocamento = -10800000, dstSavings = 3600000, useDaylight = true, transições = 129, lastRule = java.util.SimpleTimeZone [id = América / Sao_Paulo, deslocamento = -10800000, dstSavings = 3600000, useDaylight = true , startYear = 0, startMode = 3, startMonth = 10, startDay = 1, startDayOfWeek = 1, startTime = 0, startTimeMode = 0, endMode = 3, endMonth = 1, endDay = 15, endDayOfWeek = 1, endTimeMode = 0, endTimeMode = 1] = 1, HOUR = 10, HOUR_OF_DAY = 22, MINUTE = 14, SEGUNDO = 22, MILISEGUNDO = 506, ZONE_OFFSET = -10800000,DST_OFFSET = 3600000] em uma sequência.
    javax.faces.convert.DateTimeConverter.getAsString (DateTimeConverter.java:469)
    com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue (HtmlBasicRenderer.java:519)
    com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getFormattedValue (HtmlBasicRenderer.java:538)
    com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue (HtmlBasicRenderer.java:357)
    com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd (HtmlBasicRenderer.java:164)
    javax.faces.component.UIComponentBase.encodeEnd (UIComponentBase.java:875)
    com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive (HtmlBasicRenderer.java:312)
    com.sun.faces.renderkit.html_basic.GridRenderer.renderRow (GridRenderer.java:185)
    com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren (GridRenderer.java:129)
    javax.faces.component.UIComponentBase.encodeChildren (UIComponentBase.java:845)
    javax.faces.component.UIComponent.encodeAll (UIComponent.java:1779)
    javax.faces.render.Renderer.encodeChildren (Renderer.java:168)
    javax.faces.component.UIComponentBase.encodeChildren (UIComponentBase.java:845)
    javax.faces.component.UIComponent.encodeAll (UIComponent.java:1779)
    javax.faces.component.UIComponent.encodeAll (UIComponent.java:1782)
    javax.faces.component.UIComponent.encodeAll (UIComponent.java:1782)
1 resposta
solução!

O seu inputtext está errado, você colocou:

<h:inputText id="dataLancamento"value="#{livroBean.livro.dataLancamento}" >
                 <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo"/>

            </h:inputText>

O correto:

<h:inputText id="dataLancamento" value="#{livroBean.livro.dataLancamento.time}">
    <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
</h:inputText>

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software