cris.t
Dezembro 15, 2008, 9:31am
#1
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
agcp123
Fevereiro 2, 2011, 10:20am
#4
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 ?
Ainda continua do mesma forma…reetindo!!
Se o pessoal do guj puder ajudar…Melhora
!