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">
<html xmlns="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:form id="formulario">
<p>
<h:messages />
</p>
Data 1
<h:inputText id="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:convertDateTime pattern="dd/mm/yyyy" />
</h:inputText>
<br />
Data 2
<h:inputText id="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:convertDateTime pattern="dd/mm/yyyy" />
</h:inputText>
<h:outputText id="saida">
<br />
ok1!
<br />
</h:outputText>
<h:outputText id="saida2">
<br />
ok2!
<br />
</h:outputText>
<br />
<h:commandButton action="#{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> .
eu tirei e nada mudou, ainda nao vai ao servidor, nao faz a requisição…
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
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
*/
public class ManagedBean {
private String data1;
private String data2;
private boolean flag;
private boolean saida1;
public boolean isSaida1() {
return saida1;
}
public void setSaida1(boolean saida1) {
this.saida1 = saida1;
}
public String valida() {
setSaida1(true);
return null;
}
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 = data1;
}
public String getData2() {
return data2;
}
public void setData2(String data2) {
this.data2 = data2;
}
/** Creates a new instance of ManagedBean */
public ManagedBean() {
}
}
CÓDIGO DO FACES CONFIG
<?xml version='1.0' encoding='UTF-8'?>
<!-- =========== FULL CONFIGURATION FILE ================================== -->
<faces-config version="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?
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.
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?
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.
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?
nenhum form do seu projeto faz um post?