Pessoal boa tarde,
1 - Criei uma validação na Action(@RequiredStringValidator) p/ não permitir que um certo campo seja enviado p/ action vazio.
2 - usei uma tag lib p/ receber a mensagem de validação da action no arquivo JSP.
a validação funciona beleza, mas assim que eu entro no meu jsp ( sem fazer nenhuma requisição a ACTION ) , a mensagem de validação aparece no JSP… gostaria que a mensagem de validação só aparecesse quando fosse submetido o formulário sem o campo preenchido…
ps: também existe uma validação p/ tamanho mínimo de caracteres , a mesma funciona quando é submetido, e aparece a mensagem de restrição dos 5 caracteres… mas se eu pressionar f5 ou entrar novamente no formulário sem fazer nada aparece a mensagem
referente a validação da obrigatoriedade do campo.
taglib usada : <s:fielderror />
segue abaixo o código do JSP e ACITION:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h3>Adicionar Tarefas</h3>
<s:fielderror fieldName="tarefa.descricao"/>
<form action="adicionaTarefa" method="post">
Descrição : <br />
<textarea rows="5" cols="100" name="tarefa.descricao">
</textarea>
<input type="submit" value="adicionar" />
</form>
</body>
</html>
package action;
import org.apache.struts2.convention.annotation.*;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.StringLengthFieldValidator;
import com.opensymphony.xwork2.validator.annotations.Validations;
import dao.TarefaDao;
import entidade.Tarefa;
@Validations(requiredStrings={
@RequiredStringValidator(fieldName="tarefa.descricao",message="Valor obrigatório" ) },
stringLengthFields={
@StringLengthFieldValidator(fieldName="tarefa.descricao",minLength="5",message="Minimo 5 caracteres") }
)
public class AdicionaTarefaAction extends ActionSupport {
private Tarefa tarefa;
@Action(value = "adicionaTarefa",results = {
@Result(name = "ok", location = "/tarefa-adicionada.jsp"),
@Result(name = "input", location ="/formulario-tarefas.jsp")
} )
public String execute(){
new TarefaDao().adiciona(tarefa);
return "ok";
}
public Tarefa getTarefa() {
return tarefa;
}
public void setTarefa(Tarefa tarefa) {
this.tarefa = tarefa;
}
}