robertowm
![[Avatar]](/images/avatar/9778d5d219c5080b9a6a17bef029331c.jpg)
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.
|