[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Ajuda Validação de Dados em Inputs com o mesmo nome  XML
Forum Index -> Comentários Gerais
Author Message
robertowm


[Avatar]

Joined: 22/03/2006 05:52:58
Messages: 6
Location: Rio de Janeiro
Offline

Olá para todos!

Eu sou iniciante em programação com Java e Jsp e estou encarregado de colocar uma página que faz pedidos online empresa onde estou estagiando para funionar. O projeto já estava semi-pronto quando peguei, por isso não está completamente baseado no framework Mentawai, que eu descobri depois, ao pesquisar por uma solução de login e controle de sessões para a página.

O problema é o seguinte, a página Jsp cujo os dados estou querendo validar, gera via código java, uma série de inputs com o mesmo nome. O que acontece é que a validação não está funcionando para esse caso, a função está retornando Succes mesmo que eu configure que os campos com o determinado nome não possam estar em branco.

Como teste, na mesma aplicação, eu gerei um input único e a validação funcionou como eu queria. Segue abaixo o código da página JSP cmo o caso que nao funciona:

[Edit] O nome da página é 9.jsp
<%
for (int index = 0; index < pneus.length; index++){
%>

<input type="textarea" id="<%=index%>" name="id" class="campo1" maxlength="5" size="5" value = <%=pneus[index].getQuantidade()%>"/>

<mtw:hasError><font color="red"><mtw:error field="cod" /></font>
</mtw:hasError>

<%}%>

A classe Java que fará a validação é a que se segue abaixo:

package sistema;

import java.io.*;
import java.util.*;
import sistema.dbUtil;
import org.mentawai.core.*;
import org.mentawai.action.*;
import org.mentawai.validation.*;
import org.mentawai.rule.*;
import org.mentawai.filter.*;

public class CreateOrcam extends BaseAction implements Validatable{

public static final String ERROR2 = "error2";

public String execute() throws Exception {

Integer numItem;

dbUtil db = (dbUtil)session.getAttribute("db");
Estoque estoque = (Estoque)session.getAttribute("estoque");
Pneu[] pneu = estoque.getPneus();
Orcamento orcam = (Orcamento)session.getAttribute("orcam");
orcam.setReset();


if(db.getNomeUsuario() == null)
{
System.out.println("Usuario = null");
return ERROR2;
}

String[] ids = input.getStringValues("cod");

numItem = 0;
for(int i=0; i<ids.length; i++){
Integer qtd = new Integer(ids[i]);
if(qtd>0){
numItem++;
pneu[i].setQuantidade(new Integer(ids[i]));
pneu[i].setDataEntrega(orcam.getDataEmissao());
if(numItem < 10)
{
pneu[i].setItem("0"+numItem.toString());
}else{
pneu[i].setItem(numItem.toString());
}
orcam.setItens(pneu[i]);
}

}

session.setAttribute("orcam",orcam);
return SUCCESS;
}

public void initValidator(Validator val, String innerAction) {


val.add("cod", new RequiredFieldRule(), FIELD_REQUIRED_ERROR);
//val.add("user", new RegexRule(NAME_PATTERN), IS_NOT_NUMBER_ERROR);

}

private static final String FIELD_REQUIRED_ERROR = "Campo obrigatório deve ser preenchido.";
private static final String IS_NOT_NUMBER_ERROR = "Campo preenchido com valor inválido.";
private static final String NAME_PATTERN = "?";

---------------------------------------------------------------------
Outra dúvida que tenho é que estou querento criar uma validação para que o campo só possa ser preenchido com números, mas nao sei como devo preencher a string NAME_PATTERN para que a RegexRule funcione.

Segue abaixo a minha classe AplicationManager.java:

package sistema;

import java.util.*;
import org.mentawai.core.*;
import org.mentawai.filter.*;
import org.mentawai.action.*;

public class ApplicationManager extends org.mentawai.core.ApplicationManager {

public void loadActions() {

addGlobalFilter(new AuthenticationFilter());
addGlobalConsequence(AuthenticationFilter.LOGIN, new Redirect("/index.html"));

ActionConfig ac = new ActionConfig("Login", acesso.class);
ac.addConsequence(acesso.SUCCESS, new Redirect("/1.jsp"));
ac.addConsequence(acesso.ERROR, new Forward("/index.html"));
addActionConfig(ac);

ac.addFilter(new RedirectAfterLoginFilter());
ac.addConsequence(RedirectAfterLoginFilter.REDIR, new Redirect());

ac = new ActionConfig("/Logout", LogoutAction.class);
ac.addConsequence(LogoutAction.SUCCESS, new Redirect("/index.html"));
addActionConfig(ac);

action("/Create", CreateOrcam.class)
.on(SUCCESS, redir("/10.jsp"))
.on(CreateOrcam.ERROR, fwd("/9.jsp"))
.on(CreateOrcam.ERROR2, fwd("/teste.jsp"))
.filter(new ValidatorFilter());
}

}
--------------------------------------------------------------------

Agradeço a todos desde já pela atenção e parabéns a equipe do Mentawai pelo bom trabalho.
[MSN]
 
Forum Index -> Comentários Gerais
Go to:   
Powered by JForum 2.1.6 © JForum Team