[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Validação nao renderiza  XML
Forum Index -> Comentários Gerais
Author Message
khaleo


[Avatar]

Joined: 30/01/2008 12:06:37
Messages: 11
Location: Volta Redonda - RJ
Offline

Pessoal, estou fazendo um exemplo simples de validação de campos usando o menta. Segue as configurações do meu ApplicationManager e Action:

Code:
 public class ApplicationManager extends org.mentawai.core.ApplicationManager{
 
 
     @Override
     public void loadActions() {
 
         setDebugMode(true);
 
         addGlobalFilter(new ValidatorFilter());
         ActionConfig ac = new ActionConfig("ActPadrao", ActPadrao.class);
         ac.addConsequence(ERROR, "pergunta1", new Forward("erro.jsp"));
         ac.addConsequence(SUCCESS, "pergunta1", new Forward("certo.jsp"));
         addActionConfig(ac);
         
     }
 
 }
 
 


Minha Action:

Code:
 public class ActPadrao extends BaseAction implements Validatable{
     
    private static final String CAMPO_REQUERIDO = "Campo requerido";
    private String resposta;
 
    public String pergunta1(){
 
        resposta = input.getString("resposta");
        if (resposta.trim().equalsIgnoreCase("b")){
            return SUCCESS;
        }
        return ERROR;
 
    }
 
     public void prepareValidator(Validator val, String innerAction) {
         if (innerAction.equalsIgnoreCase("pergunta1")){
             val.add("reposta", new RequiredFieldRule(), CAMPO_REQUERIDO);
         }
     }
   
 
 }
 


E agora meu jsp:

Code:
 <%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/" %>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">
 
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>JSP Page</title>
     </head>
     <body>
         <h1>Perguntas</h1>
         <form id="frm" method="post" action="ActPadrao.pergunta1.mtw">
             <table width="100%" border="0">
                 <tr>
                     <td width="15%">Pergunta:</td>
                     <td width="27%"><label> <mtw:input type="text"
                                name="resposta" id="resposta" /> </label></td>
                     <td width="58%"><mtw:hasError>
                             <font color="red"> <mtw:error field="resposta" /> </font>
                         </mtw:hasError></td>
                 </tr>
             </table>
                 <input type="submit" value="OK" id="btnOK"/>
         </form>
     </body>
 </html>
 


Esse código está redirecionando pra pagina correta de acordo com a resposta solicitada, o problema é q se o campo estiver vazio, ele nao está validando como campo requerido na pagina jsp, ele já redireciona direto como resposta errada...
A saida de debug está assim:

Code:
 
 - - - - - - - - - - - - - - - -  Mentawai DEBUG - - - - - - - - - - - - - - - - 
 
 
 ActionName = ActPadrao
 InnerAction = pergunta1
 ActionClass = action.ActPadrao
 Browser Locale = pt_BR
 Action Locale = en_US
 Default Locale = en_US
 
 
 Input:
 
 	resposta = 
 
 Output:
 
 	empty
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 
 Filter = org.mentawai.filter.ValidatorFilter@7787a5
 
 
 Input:
 
 	resposta = 
 
 Output:
 
 	fieldErrors = {reposta=Campo requerido}
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 
 Result = error
 
 Consequence = Forward to /erro.jsp
 
 Total Time = 17ms
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 
 Mentawai Web Framework - Version:1.15  Build:20091016
 


Pq ele nao renderiza na tela em frente ao campo de texto como "Campo requerido" ??

Programador
[MSN]
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Esquece vi q tu ta usando <mtw:error field="resposta" /> dentro entao ta certinho... mal minha.


Tira o @Override acima do loadAction e faca um teste.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
khaleo


[Avatar]

Joined: 30/01/2008 12:06:37
Messages: 11
Location: Volta Redonda - RJ
Offline

Coloquei do jeito que vc descreveu, mas continua nao renderizando...

Code:
 <%@taglib prefix="mtw" uri="http://www.mentaframework.org/tags-mtw/" %>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">
 
 <html>
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>JSP Page</title>
     </head>
     <body>
         <h1>Perguntas</h1>
         <form id="frm" method="post" action="ActPadrao.pergunta1.mtw">
             <table width="100%" border="0">
                 <tr>
                     <td width="15%">Pergunta:</td>
                     <td width="27%"><label> <mtw:input type="text"
                                name="resposta" id="resposta" /> </label></td>
                     <td width="58%"><mtw:outFieldErrors>
                             <font color="red"> <mtw:error field="resposta" /> </font>
                         </mtw:outFieldErrors></td>
                 </tr>
             </table>
                 <input type="submit" value="OK" id="btnOK"/>
         </form>
     </body>
 </html>
 


Muito estranho...

Programador
[MSN]
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

afff esquece tb....


como disse veja seu JSP... vc tem:
Code:
 <mtw:input type="text" name="resposta" id="resposta" />


e quer validar

Code:
val.add("reposta", new RequiredFieldRule(), CAMPO_REQUERIDO);



O que ta errado ai????

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
khaleo


[Avatar]

Joined: 30/01/2008 12:06:37
Messages: 11
Location: Volta Redonda - RJ
Offline

Retirei e aconteceu a mesma coisa... nao renderizou "Campo requerido"

Programador
[MSN]
khaleo


[Avatar]

Joined: 30/01/2008 12:06:37
Messages: 11
Location: Volta Redonda - RJ
Offline

Entao, na teoria aparentemente era pra estar correto:

Code:
 public void prepareValidator(Validator val, String innerAction) {
          if (innerAction.equalsIgnoreCase("pergunta1")){
              val.add("reposta", new RequiredFieldRule(), CAMPO_REQUERIDO);
          }
      }
 

Programador
[MSN]
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Como filho que da certo.

Se teu JSP ta falando um campo e tu ta validando outro????

O teu campo chama-se resposta
<mtw:input type="text" name="resposta" id="resposta" />

O seu error chama-se
<mtw:hasError><mtw:error field="resposta" /></mtw:hasError>

E tu valida reposta e quer que o menta entenda que reposta = resposta ?

val.add("reposta", new RequiredFieldRule(), CAMPO_REQUERIDO);

Ele vai procurar no JSP por reposta e nao resposta, ou um ou outro... ou põe ou tira o s.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
khaleo


[Avatar]

Joined: 30/01/2008 12:06:37
Messages: 11
Location: Volta Redonda - RJ
Offline

Admito q fiquei com um pouco de vergonha pela falta de atenção...rs
Mas acabei de corrigir a falta de "s" no campo e continuou dando o problema... porém vi no meu appmanager q quando a consequencia gera um erro, ela redireciona para "erro.jsp" e o correto seria redirecionar pra "index.jsp", pois assim funcionou de boa...
Oq eu fiz está correto??
Muito obrigado pela paciencia amigo !!!!

Programador
[MSN]
IceW0lf


[Avatar]

Joined: 16/03/2006 08:33:38
Messages: 1546
Location: Brasília
Offline

Para seu formulario vc tem q fazer:

1) preencho os campos da minha pagina fulana.jsp e clico em salvar
2) Vai para a action Beltrana.action
3) on SUCCESS vai pra qualquer pagina action etc.
3) on ERROR retorna pra fulana.jsp e exibe erro no campo X.

Se tu validar e mandar pra outra pagina realmente nao vai mostrar o erro.

A validacao retorna ERROR se houver erro.

Leiber Wallace
Voixy ::: Soluções em Telecomunicações
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team