Gente eu to estudando JSF com a apostila da alga... tem uma ativiade que é pra mostrar um aviso em cima do formulário e outro ao lado do campo... O que é pra aparecer que cima do formulário aparece corretamente, mais oq é pra aparecer ao lado do campo não aparece:
<%@pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglibprefix="f"uri="http://java.sun.com/jsf/core"%><%@taglibprefix="h"uri="http://java.sun.com/jsf/html"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>.:Cadastro Usuario:.</title></head><f:view><body><h:form><h:messageslayout="table"errorStyle="color: red"infoStyle="color: green"warnStyle="color: orange"fatalStyle="color: gray"showDetail="true"globalOnly="true"/><h:panelGridcolumns="2"><f:facetname="header"><h:outputTextvalue="Dados para cadastro"/></f:facet><h:outputTextvalue="Nome:"/><h:panelGroup><h:inputTextid="nome"value="#{cadastroUsuarioBean.nome}"/><h:messagefor="nome"/></h:panelGroup><h:outputTextid="email"value="E-mail:"/><h:panelGroup><h:inputTextsize="40"maxlength="250"value="#{cadastroUsuarioBean.email}"/><h:messagefor="email"/></h:panelGroup><h:outputTextvalue="Senha:"/><h:panelGroup><h:inputSecretid="senha"size="20"value="#{cadastroUsuarioBean.senha}"/><h:messagefor="senha"/></h:panelGroup><h:outputText/><h:commandButtonid="cadastrar"value="Cadastrar"actionListener="#{cadastroUsuarioBean.cadastrar}"/></h:panelGrid></h:form></body></f:view></html>
tive um problema assim antigamente, acontecia por causa dos caracteres especiais na mensagem de erro, lembro que quando removia os caracteres a mensagem aparecia certo. faça um teste pra ver.
[]´s
Hebert_Coelho
Tem como você postar o método que trata a ação e coloca a msg aviso no contexto?
X
xandi_m5
mauricioadl:
tive um problema assim antigamente, acontecia por causa dos caracteres especiais na mensagem de erro, lembro que quando removia os caracteres a mensagem aparecia certo. faça um teste pra ver.
[]´s
Meu Bean é esse... Tirei todas as carateres especias mais mesmo assim da erro...
Ps: a mensagem "Dia da semana invalido!","Voce nao pode cadastrar usuarios nesse dia.")); aparece normal mesmo com as caracterias especias... Sabe mais algum coisa que pode ser o possível problema?
X
xandi_m5
jakefrog:
Tem como você postar o método que trata a ação e coloca a msg aviso no contexto?
Sim Sim
packagecom.algaworks.dwjsf.visao;importjava.util.Calendar;importjavax.faces.application.FacesMessage;importjavax.faces.context.FacesContext;importjavax.faces.event.ActionEvent;publicclassCadastroUsuario{privateStringnome;privateStringemail;privateStringsenha;publicvoidcadastrar(ActionEventevent){FacesContextcontext=FacesContext.getCurrentInstance();if(this.getNome()!=null&&this.getNome().length()<10){context.addMessage("frm:nome",newFacesMessage(FacesMessage.SEVERITY_WARN,"Nome invalido!","Digite nome completo."));}if(Calendar.getInstance().get(Calendar.DAY_OF_WEEK)==Calendar.FRIDAY){context.addMessage(null,newFacesMessage(FacesMessage.SEVERITY_WARN,"Dia da semana invalido!","Voce nao pode cadastrar usuarios nesse dia."));}}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}publicStringgetSenha(){returnsenha;}publicvoidsetSenha(Stringsenha){this.senha=senha;}}
Essa msg "Nome invalido!","Digite nome completo." não aparece...(ao lado do campo nome) e da o erro:
Sim, desculpa...
Vc falo pra mim pesquisar sobre uma tag ajax mais eu fiquei com mais duvida... E eu avisei lá, mais vc nãoa falo nada ... :/
Mais em fim..
Assim que eu coloco update="mensages" o eclipse acusa uma erro(na mesma linha...) e a palavra update fica grifada e quando executo e dá o seguinte erro -->"Attribute update invalid for tag commandButton according to TLD"
Hebert_Coelho
Vc não está utilizando primefaces. MyBad. Por isso que está dando esse erro. Realmente ele não tem o componente para isso.
Tenta o seguinte então.<h:commandButton id="cadastrar" value="Cadastrar" update="mensages"
action="#{cadastroUsuarioBean.cadastrar}" />
E caso dê o erro, faça com que seu método retorne null ao invés de alguma string.
X
xandi_m5
jakefrog:
Master.Abs:
Retire o atributo globalOnly=“true” que deve funcionar.
E para apresentar a mensagem ao lado do campo informe o id do seu form nesse caso <h:form id=“frm”>…
Não acho que seja o globalOnly=“true” pois o botão do primefaces tem chamada ajax por default. Ou seja, ele não ta reinderizando a chamada.
Mas testa aí. [=
Eu testei a msg “Nome invalido!”,“Digite nome completo.” aparece em cima do formulário junto com a outra msg, mais ela deve aparecer ao lado do campo nome… =D
Hebert_Coelho
Então coloca aí:
<h:inputText id="nome"
value="#{cadastroUsuarioBean.nome}" required="true" requiredMessage="Querido usuário, digita o bagulho aqui por favor." />
X
xandi_m5
jakefrog:
Então coloca aí:
<h:inputText id="nome"
value="#{cadastroUsuarioBean.nome}" required="true" requiredMessage="Querido usuário, digita o bagulho aqui por favor." />
<h:panelGroup>
<h:inputText id="nome" value="#{cadastroUsuarioBean.nome}"
required="true"
requiredMessage="Querido usuário, digita o bagulho aqui por favor." />
<h:message for="nome" />
</h:panelGroup>
E continua na mesma coisa…
Hebert_Coelho
Posta tua pagina aí novamente para ver como que está.
X
xandi_m5
jakefrog:
Posta tua pagina aí novamente para ver como que está.
Aki:
<%@pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglibprefix="f"uri="http://java.sun.com/jsf/core"%><%@taglibprefix="h"uri="http://java.sun.com/jsf/html"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>.:Cadastro Usuario:.</title></head><f:view><body><h:form><h:messagesid="mensagem"layout="table"errorStyle="color: red"infoStyle="color: green"warnStyle="color: orange"fatalStyle="color: gray"showDetail="true"globalOnly="true"/><h:panelGridcolumns="2"><f:facetname="header"><h:outputTextvalue="Dados para cadastro"/></f:facet><h:outputTextvalue="Nome:"/><h:panelGroup><h:inputTextid="nome"value="#{cadastroUsuarioBean.nome}"required="true"requiredMessage="Querido usuário, digita o bagulho aqui por favor."/><h:messagefor="nome"/></h:panelGroup><h:outputTextid="email"value="E-mail:"/><h:panelGroup><h:inputTextsize="40"maxlength="250"value="#{cadastroUsuarioBean.email}"/><h:messagefor="email"/></h:panelGroup><h:outputTextvalue="Senha:"/><h:panelGroup><h:inputSecretid="senha"size="20"value="#{cadastroUsuarioBean.senha}"/><h:messagefor="senha"/></h:panelGroup><h:outputText/><h:commandButtonid="cadastrar"value="Cadastrar"actionListener="#{cadastroUsuarioBean.cadastrar}"/></h:panelGrid></h:form></body></f:view></html>
Hebert_Coelho
Cara, olha teu botão novamente com o actionListiner…
Não acho que seja o globalOnly=“true” pois o botão do primefaces tem chamada ajax por default. Ou seja, ele não ta reinderizando a chamada.
Mas testa aí. [=
Eu testei a msg “Nome invalido!”,“Digite nome completo.” aparece em cima do formulário junto com a outra msg, mais ela deve aparecer ao lado do campo nome… =D
Voce chegou a fazer isso:
Pelo que eu pude ver no cod anterior o h:form ainda está sem o id.
X
xandi_m5
Master.Abs:
xandi_m5:
jakefrog:
Master.Abs:
Retire o atributo globalOnly="true" que deve funcionar.
E para apresentar a mensagem ao lado do campo informe o id do seu form nesse caso ....
Não acho que seja o globalOnly="true" pois o botão do primefaces tem chamada ajax por default. Ou seja, ele não ta reinderizando a chamada.
Mas testa aí. [=
Eu testei a msg "Nome invalido!","Digite nome completo." aparece em cima do formulário junto com a outra msg, mais ela deve aparecer ao lado do campo nome... =D
Voce chegou a fazer isso:
Master Abs:
para apresentar a mensagem ao lado do campo informe o id do seu form nesse caso
Pelo que eu pude ver no cod anterior o h:form ainda está sem o id.
Sim sim
<%@pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglibprefix="f"uri="http://java.sun.com/jsf/core"%><%@taglibprefix="h"uri="http://java.sun.com/jsf/html"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>.:Cadastro Usuario:.</title></head><f:view><body><h:formid="cadastro"><h:messageslayout="table"errorStyle="color: red"infoStyle="color: green"warnStyle="color: orange"fatalStyle="color: gray"showDetail="true"globalOnly="true"/><h:panelGridcolumns="2"><f:facetname="header"><h:outputTextvalue="Dados para cadastro"/></f:facet><h:outputTextvalue="Nome:"/><h:panelGroup><h:inputTextid="nome"value="#{cadastroUsuarioBean.nome}"/><h:messagefor="nome"/></h:panelGroup><h:outputTextid="email"value="E-mail:"/><h:panelGroup><h:inputTextsize="40"maxlength="250"value="#{cadastroUsuarioBean.email}"/><h:messagefor="email"/></h:panelGroup><h:outputTextvalue="Senha:"/><h:panelGroup><h:inputSecretid="senha"size="20"value="#{cadastroUsuarioBean.senha}"/><h:messagefor="senha"/></h:panelGroup><h:outputText/><h:commandButtonid="cadastrar"value="Cadastrar"actionListener="#{cadastroUsuarioBean.cadastrar}"/></h:panelGrid></h:form></body></f:view></html>
Basta colocar o o id no form .jsp ou tem que colocar no .java tb???
O código tá ai com o id, e tá com o mesmo erro... :/