Re:validacao struts 2 repete a mensagem

Humm…Já aconteceu isto comigo, porém não me lembro mto bem como resolvi :oops:

<s:actionmessage />

<s:form action="Logar" validate="true"  theme="simple">   
  
  <s:textfield name="usuario" size="21" label="Usuário" required="true" maxlength="10"></s:textfield>   
  
  <s:textfield name="senha" size="21" label="Senha" required="true" maxlength="10"> </s:textfield>   
     
  <s:submit value="Confirmar"></s:submit>   
     
</s:form>  

tenta tirar o:

<s:fielderror name="usuario"></s:fielderror>  

Também gostaria de saber como resolver esse problema.

E ai java_coffe , beleza ?
Cara o sistema devalidação do struts 2 é uma merda. Para você ter uma idéia essa validação é feita via javascript. Se você ter uma olhada na página gerada por ele verá uns código javascript que faz essa validação. Nesse código vera que ele trabalha com o DOM do html. Percebe que a cada validação ele cria mais um elemento, e não limpa o que ja existe. Eu não sei outra forma de se resolver isso, a não ser mexer no código javascript gerado por ele.

Se que esse não é o local certo, mas Struts 2 é uma merda !!! Pelo menos nesse quesito.

Abraços

Para resolver este problema, podemos utilizar jquery para limpar os campos…

Declaramos o método /limparValidacao no header da pagina principal:

<script type="text/javascript" src="${pageContext.request.contextPath}/script/jquery-1.4.2.js"></script>
<script type="text/javascript">

	dojo.event.topic.subscribe("/limparValidacao", function(data, type, request){
		if ( type == 'before' ){
			 $(function(){
			 	var labelErrors = $(".errorMessage");
			 	if (labelErrors.size() > 0){
			 		$(".errorMessage").each(function(){
			 			$(this).parent().remove();
			 		});
			 	};
			 });
		}
	}); 
	

	
</script>

Em seguida, adicione ao botao de submit:

<sx:submit id="submitId" targets="destinoIdDiv"  value="Salvar" validate="true" notifyTopics="/limparValidacao"/>

Pronto, assim podemos integrar tambem jquery com dojo.

Gente estou fazendo esta validação e fica repetindo a mensagem toda vez. Qual pode ser o problema ?

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ 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 XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <s:head />
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
</head>
<body>

<s:form action="Logar" validate="true" theme="simple">

  <s:textfield name="usuario" size="21" label="Usuário" maxlength="10"></s:textfield>

  <s:textfield name="senha" size="21" label="Senha"  maxlength="10"> </s:textfield>
  
  <s:submit value="Confirmar"></s:submit>
  
</s:form>

<s:fielderror name="usuario"></s:fielderror>

</body>
</html>

minha arquivo de validação

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
    <field name="usuario">
        <field-validator type="requiredstring">
            <message>You must enter a name</message>
        </field-validator>
    </field>
</validators>

<!--  END SNIPPET: quizValidators  -->

ondes esta mapeado minha action no struts.xml

<action name="Logar" method="logar" class="Logar">
	        <result name="success"> /jsp/menu_principal.jsp </result>
	        <result name="input"> /jsp/index.jsp </result>
</action>

Alquem ja passou por isso ?

:shock:

Alguem pra ajudar

Ainda continua do mesma forma…reetindo!!

Se o pessoal do guj puder ajudar…Melhora
!