Problemas com ValidatorForm [Resolvido]

4 respostas
J

Estou tentando utilizar ValidatorForm em uma aplicação nos struts, mas a validação não funciona. Curioso é que se altero o mapeamento do form para DynaValidatorForm, a validação funciona. No console só aparece o seguinte erro:

[color=red]02/02/2009 17:56:19 org.apache.struts.util.PropertyMessageResources loadLocale
WARNING: Resource ApplicationResources_pt_BR.properties Not Found.
02/02/2009 17:56:19 org.apache.struts.util.PropertyMessageResources loadLocale
WARNING: Resource ApplicationResources_pt.properties Not Found.[/color]

struts-config:
<form-bean name="loginForm" type="br.com.web.struts.form.LoginForm" />
<action path="/loginIn" type="br.com.web.struts.action.LoginAction" 
            parameter="op" name="loginForm" scope="request" validate="true" input="/jsp/login.jsp">
      <forward name="success" path="/jsp/home.jsp" />
      <forward name="erro" path="/jsp/login.jsp" />
</action>
validation.xml:
<form name="loginForm">
			<field property="userName" depends="required,maxlength">
				<arg key="loginForm.userName.displayname" position="0" />
				<arg name="maxlength" key="${var:maxlength}" resource="false" position="1" />
				<var>
					<var-name>maxlength</var-name>
					<var-value>15</var-value>
				</var>
			</field>
			<field property="password" depends="required,maxlength">
				<arg key="loginForm.password.displayname" position="0" />
				<arg name="maxlength" key="${var:maxlength}" resource="false" position="1" />
				<var>
					<var-name>maxlength</var-name>
					<var-value>10</var-value>
				</var>
			</field>
		</form>
Form:
import java.io.Serializable;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionMapping;

public class LoginForm extends ValidatorForm implements Serializable {

	private static final long serialVersionUID = 4373469686482315635L;

	
	private String userName;
	private String password;
	private String qtdLogin;


	
	public String getPassword() {
	return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getQtdLogin() {
		return qtdLogin;
	}

	public void setQtdLogin(String qtdLogin) {
		this.qtdLogin = qtdLogin;
	}

	public String getUserName() {
	return userName;
	}

	public void limpaForm(ActionMapping mapping, HttpServletRequest request) {
		super.reset(mapping, request);
		this.userName = null;
		this.password = null;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	 
}

4 Respostas

furutani

Olá

j_chist:
[color=red]02/02/2009 17:56:19 org.apache.struts.util.PropertyMessageResources loadLocale
WARNING: Resource ApplicationResources_pt_BR.properties Not Found.
02/02/2009 17:56:19 org.apache.struts.util.PropertyMessageResources loadLocale
WARNING: Resource ApplicationResources_pt.properties Not Found.[/color]

Isso não é erro, é um aviso.
Como ele não achou o ApplicationResources_pt_BR.properties e nem o ApplicationResources_pt.properties ele usa o ApplicationResources.properties

Mas com relação a validação. Aparece um erro no console?

J

Você tem razão furtani, é um warning. O do LocalString só aparece quando declaro o form-bean do LoginForm. Se declaro o mesmo como DynaValidatorForm, essa mensagem não aparece e a validação fuinciona. No mais não há qualquer erro aparecendo. A versão do struts é 1.3.8. É alguma configuração errada, mas realmente não consigo enxergar o que seja, já olhei cada arquivo passo-a-passo tentando ver algum erro mais óbvio e não achei.

Rangel_Zutin

Estou com o mesmo problema e nao consigo resolver nem a pau! Voce conseguiu evoluir nisso? Obrigado!

J

Rangel, acaba que nem era problema nenhum! Acontece que na minha classe LoginForm, os métodos getPassword e getUserName estava retornando strings literais :oops: Aí, mesmo que eu apagasse os valores na página da aplicação, os campos nunca chegavam vazios ao validator. Como a validação usando DynaValidatorForm funcionou mesmo assim, pensei logo que era problema de configuração do validator. Veja se nào é algum detalhes desses, e posta aí se eu puder ajudar em algo.

Criado 2 de fevereiro de 2009
Ultima resposta 3 de fev. de 2009
Respostas 4
Participantes 3