Mensagens de validação ajax do struts 2.2.x

0 respostas
E

Boa tarde a todos,

Minha situação é a seguinte:

Estou utilizando na minha aplicação struts2+validator , sendo ambos co
m annotations.Minha validação esta sendo feita via ajax através do interceptor jsonValidationWorkflowStack.Está tudo funcionando, o problema é que minha validação esta exibindo os erros nos campos com alerts, e desta maneira:

(Caso não vejam, a imagem esta em anexo apesar de não ter encontrado o botão de enviar rs)

Existe alguma maneira de configurar a forma que esta mensagem aparece?Porque não aparece com innerHTML como nas versões mais antigas do struts 2 e porque qualquer message ou key que indico no meu @RequiredStringValidator está sendo ignorada?Alguem poderia me ajudar?Desde já agradeço! :slight_smile:

Código da jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib uri="/struts-dojo-tags" prefix="sx" %>
<%@ taglib uri="/WEB-INF/tld/sdp.tld" prefix="sdp"%>
    
<!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><sdp:messageProperty key="label.sistema.rendimento.pessoal"/></title>
	<style type="text/css">
		.errorMessage{
			color:red;
		}
	</style>
	<sx:head/>
</head>
<body>
	<div align="center">
		<div style="top:50%;left:50%;position:absolute;margin-left:-220px;margin-top:-230px;width:400px;height:250px;border-color:black;border-width:1px;border-style:solid;">
			<s:form action="/login/autenticar" theme="xhtml" method="post">
				<br/><br/><br/><br/>
				<s:textfield name="usuario.login" label="Login" maxLength="30"/>
				<s:password  name="usuario.senha" label="Senha" maxLength="30"/>
				<sx:submit validate="true" 
						   align="center" 
						   cssStyle="margin-top:10px;" 
						   value="Login"/>
			</s:form>
		</div>
	</div>
</body>
</html>

Código da Action:

package br.com.sdp.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.Validations;
import com.opensymphony.xwork2.validator.annotations.VisitorFieldValidator;

import br.com.sdp.model.Usuario;
import br.com.sdp.util.ResultNameEnumeration;

@InterceptorRef(value="jsonValidationWorkflowStack")
@Validations
@Results({
	@Result(name="iniciar",location="/WEB-INF/jsp/login.jsp"),
	@Result(name="deslogar",location="/WEB-INF/jsp/login.jsp"),
	@Result(name="input",location="/WEB-INF/jsp/login.jsp"),
	@Result(name="sucesso",location="/WEB-INF/jsp/menu.jsp")
})
public class LoginAction extends ActionSupport{

	private static final long serialVersionUID = -943650085303154828L;
	private Usuario usuario;
	
	public String execute() {
		return ResultNameEnumeration.INICIAR.getName();
	}
	
	@Action("/login/autenticar")
	public String autenticar(){
		return ResultNameEnumeration.SUCESSO.getName();
	}
	
	@Action("/login/deslogar")
	public String deslogar(){
		return ResultNameEnumeration.DESLOGAR.getName();
	}
	
	public Usuario getUsuario() {
		return usuario;
	}
	
	@VisitorFieldValidator()
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}	
}

Código de Usuário(Ignorem as notações do hibernate):

package br.com.sdp.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.Validations;

@Validations
@Entity
@Table(name="usuario")
public class Usuario {

	private String login;
	private String senha;
	
	@RequiredStringValidator(key="login.obrigatorio",shortCircuit=false)
	@Id
	@Column(name="login",nullable=false)
	public String getLogin() {
		return login;
	}
	
	public void setLogin(String login) {
		this.login = login;
	}
	
	@RequiredStringValidator(key="senha.obrigatorio",shortCircuit=false)
	@Column(name="senha",nullable=false)
	public String getSenha() {
		return senha;
	}
	
	public void setSenha(String senha) {
		this.senha = senha;
	}
}
Criado 20 de outubro de 2011
Respostas 0
Participantes 1