Não duplique seus tópicos.
Mude esta linha no validate:
erros.add("nome", new ActionMessage("nome.erro"));
// Mudar para
erros.add("errors", new ActionMessage("nome.erro"));
[]'s
Coloque seu <html:errors/> antes da sua tag<html:form> , não se influencia mas …
Outra coisa como está seu struts-config.xml , vc setou o validate = true ?
<action
path="/LogonSubmit"
type="app.LogonAction"
name="logonForm"
scope="request"
validate="true"
input="/logon.jsp" />
<action path="/logoff" type="app.LogoffAction" />
Caso o validate retorne false e ele redireciona para logon.jsp com a mensagem de erro
[quote=ramilani12]Coloque seu <html:errors/> antes da sua tag<html:form> , não se influencia mas …
Outra coisa como está seu struts-config.xml , vc setou o validate = true ?
[/quote]
Se não está apresentando as msgs de erro, ele está setando o validate=true.
Qto a usar o <html: errors/> antes do <html:form> não influencia até pq não tem relação com o form. Esta tag itera uma lista de Strings do escopo.
[]'s
Cara … se a forma que eu passei não funcionar, tente
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.usuario.email"));
Um das 2 alternativas com certeza funcionará.
[]'s
[quote=everson_z][quote=marciobarroso]Cara … se a forma que eu passei não funcionar, tente
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.usuario.email"));
Um das 2 alternativas com certeza funcionará.
[]'s[/quote]
De onde saiu esse error.usuario.email ???[/quote]
É só um exemplo…
[quote=marciobarroso][quote=ramilani12]Coloque seu <html:errors/> antes da sua tag<html:form> , não se influencia mas …
Outra coisa como está seu struts-config.xml , vc setou o validate = true ?
[/quote]
Se não está apresentando as msgs de erro, ele está setando o validate=true.
Qto a usar o <html: errors/> antes do <html:form> não influencia até pq não tem relação com o form. Esta tag itera uma lista de Strings do escopo.
[]'s[/quote]
Mas se ele marcar com validate false ai sim não será apresentado as mensagens de validação do formulário e o ActionForm não fará a validação
Quero saber como ele marcou o validate?
Vc definiu a tag input tbm?
Vc pode mudar sim
Mas vc precisa especificar no seu web.xml o novo caminho do arquivo Resources
O framework tratará da seguinte maneira:
:arrow: ele procurará por default no WEB-INF/classes
:arrow: no diretorio WEB-INF/classes/resources
:arrow: e ele pesquisará o pacote de mensagens(arquivo resources) em um arquivo default chamado: application.properties
Por compatibilidade mantenha seu arquivo Resources dentro do dir WEB-INF/classes/resources
Segue um exemplo no seu web-xml:
Vamos supor que seu arquivo se chama mensagens.properties
<init-param>
<param-name>mensagens</param-name>
<param-value> resources.mensagens </param-value>
</init-param>
O param-value deve ser nome totalmente qualificado indicando até pacote e subpacote
Na tag <message-resources>
Vc adiciona o nome do parametro que definimos no <param-name>
<message-resources parameter="resources.mensagens" />
Já fiz de tudo e nada… esta dando raiva
Quero ver o MessageResources.properties mostrar a msg de erro mas, nada.
Welcome.jsp [code]
<%@ taglib uri=“http://struts.apache.org/tags-bean” prefix=“bean” %>
<%@ taglib uri=“http://struts.apache.org/tags-html” prefix=“html” %>
<html:form action="acao.do">
<html:text property="nome"/>
<html:submit value="OK"/>
</html:form>
<html:errors/>
[/code]
Formulario [code]
public class Formulario extends ActionForm {
private String nome;
private String pass;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest req, HttpServletResponse res)
throws Exception{
ActionErrors erros = new ActionErrors();
if(nome == null || nome.equals("")){
erros.add("nome", new ActionMessage("nome.erro"));
}
return erros;
}
}
[/code]
Acao [code]
public class Acao extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws Exception{
Formulario formulario = (Formulario) form;
System.out.println(formulario.getNome());
req.setAttribute("objetoToRender", formulario.getNome());
return mapping.findForward("retorna");
}
}
[/code]
MessageResources.properties
welcome.title=Aplicação em Branco
welcome.heading=Welcome!
nome.erro=Verifique o campo nome!
Vlw
Não fiz isso… (token)
[quote=marciobarroso]Cara … se a forma que eu passei não funcionar, tente
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.usuario.email"));
Um das 2 alternativas com certeza funcionará.
[]'s[/quote]
De onde saiu esse error.usuario.email ???
Esta sim… validate = true
Tb
<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action
path="/Welcome"
forward="/pages/Welcome.jsp"/>
<action
path="/acao"
name="formulario"
scope="request"
validate="true"
input="/pages/Welcome.jsp"
type="app.acao.Acao">
<forward name="retorna" path="/pages/Welcome.jsp" />
</action>
</action-mappings>
Eu não posso trocar o MessageResources de lugar?
Tipo
<message-resources parameter="app.bundle.MessageResources" />
Deixei como padrão e passou a funcionar