Galera estou iniciando com jsf e nao estou conseguindo simplesmente submeter meu form, segue o codgio da minha pagina.
Alguém pode ajudar?
<?xml version='1.0' encoding='UTF-8' ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"><h:head><title>Validaçao</title></h:head><h:body><f:view><h:formid="formulario"><p><h:messages/></p>
Data 1
<h:inputTextid="data1"binding="#{mb.data1}"required="true"validatorMessage="Digite no padrão DD/MM/AAAA"requiredMessage="Campo obrigatório"converterMessage="Digite no padrão DD/MM/AAAA"><f:convertDateTimepattern="dd/mm/yyyy"/></h:inputText><br/>
Data 2
<h:inputTextid="data2"binding="#{mb.data2}"required="true"validatorMessage="Digite no padrão DD/MM/AAAA"requiredMessage="Campo obrigatório"converterMessage="Digite no padrão DD/MM/AAAA"><f:convertDateTimepattern="dd/mm/yyyy"/></h:inputText><h:outputTextid="saida"><br/>
ok1!
<br/></h:outputText><h:outputTextid="saida2"><br/>
ok2!
<br/></h:outputText><br/><h:commandButtonaction="#{mb.valida}"value="enviar"></h:commandButton></h:form></f:view></h:body></html>
Tire a tag <h:body> que fica antes e depois do <f:view> .
JavaMania
eu tirei e nada mudou, ainda nao vai ao servidor, nao faz a requisição…
A
alexmdo
Seu codigo esta correto. Pelo que foi postado, nao vejo nada de errado. Voce declarou corretamente o <h:form>, aninhado a ela colocou um <h:commandButton>, enfim, tudo teria que dar certo. Ainda assim, preciso ver como ficou declarado o seu Managed Bean.
Voce consegue ver algum erro na console. Por exemplo, erro de conversao do tipo declarado nos input do formulario?
Minha sugestao seria verificar se esse atributo binding que voce declarou esta de fato mapeado em um atributo do tipo do componente que voce realizou o vinculo. Ali nao seria “value” ao inves do “binding”? O erro poderia estar ai quando no ciclo de vida do JSF ele tentasse fazer os parses da vida.
Ve direitinho ai, e se puder, posta mais detalhes do erro e do managed bean.
Abracos
JavaMania
nao aparece nenhum codigo de erro, simplesmente nao faz a requisiçao.
CÓDIGO DO MANAGED BEAN
/* * To change this template, choose Tools | Templates * and open the template in the editor. *//** * * @author HugoDantas */publicclassManagedBean{privateStringdata1;privateStringdata2;privatebooleanflag;privatebooleansaida1;publicbooleanisSaida1(){returnsaida1;}publicvoidsetSaida1(booleansaida1){this.saida1=saida1;}publicStringvalida(){setSaida1(true);returnnull;}publicbooleanisFlag(){returnflag;}publicvoidsetFlag(booleanflag){this.flag=flag;}publicStringgetData1(){returndata1;}publicvoidsetData1(Stringdata1){this.data1=data1;}publicStringgetData2(){returndata2;}publicvoidsetData2(Stringdata2){this.data2=data2;}/** Creates a new instance of ManagedBean */publicManagedBean(){}}
CÓDIGO DO FACES CONFIG
<?xml version='1.0' encoding='UTF-8'?><!-- =========== FULL CONFIGURATION FILE ================================== --><faces-configversion="2.0"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"><managed-bean><managed-bean-name>mb</managed-bean-name><managed-bean-class>ManagedBean</managed-bean-class><managed-bean-scope>request</managed-bean-scope></managed-bean><navigation-rule><from-view-id>*</from-view-id><navigation-case><from-outcome>success</from-outcome><to-view-id>/sucesso_busca.jsp</to-view-id></navigation-case><navigation-case><from-outcome>failure</from-outcome><to-view-id>/falha_busca.jsp</to-view-id></navigation-case></navigation-rule></faces-config>
ALGUEM ME AJUDA NESSA DÚVIDA APARENTEMENTE SIMPLES?
A
alexmdo
Foi exatamente o que te disse. Esta ocorrendo erro na conversao.
Primeiro, nao se usa atributo “binding” para mapear os inputs para tipos “primitivos”. Pra esse caso seria o atributo “value”. Por ultimo, voce usou um conversor para data. No seu managed bean, o tipo que voce realizou o vinculo com o formulario foi com atributos do tipo String. Mude-os para java.util.Date.
JavaMania
Na conversão?
Eu não conheço muito me corrija se eu estiver errado… mas se fosse esse erro ele não teria q gerar a exceção status 500 pq seria um erro na aplicação do lado do servidor, teoricamente ele deveria q submeter o formulário e estourar essa exceção, nao é isso?
A
alexmdo
Nao. Isso nem ocorreria pois no ciclo de vida, antes de chegar de bater no seu managed bean, a etapa de conversão falha.
É só fazer o que falei e vai funcionar.
JavaMania
eu tenho algum jeito de saber aonde ta ocorrendo esse erro?
no console?
pra saber exatamente em qual conversão ele ta dando esse erro?