Bom dia, Amigos do GUJota!!!
Aqui estou eu de novo a solicitar a sempre tão gentil e solícita colaboração de vocês! Desta vez estou com uma aplicação em Spring para fazer a manutenção. Não sei muita coisa sobre este framework, mas o pouco que aprendi veio de [url]http://maestric.com/en/doc/java/spring/[/url], principalmente.
Consegui criar o controller, recebe por injeção o bean e faz o que tem de ser feito. na hora de validar, segui o modelo proposto em [url]http://maestric.com/en/doc/java/spring/form_validation[/url], mas agora o form não valida mesmo quando os dados estão em formato aceitável.
Seguem alguns sources:
O formBean:package mail;
public class RecommendationFormBeanImpl implements RecommendationFormBean {
private String toName;
private String toMail;
private String fromName;
private String fromMail;
private String message;
private String productCode;
public String getProductCode() {
return productCode;
}
public void setProductCode(String productCode) {
this.productCode = productCode;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public RecommendationFormBeanImpl(){
}
public String getToName() {
return toName;
}
public void setToName(String toName) {
this.toName = toName;
}
public String getToMail() {
return toMail;
}
public void setToMail(String toMail) {
this.toMail = toMail;
}
public String getFromName() {
return fromName;
}
public void setFromName(String fromName) {
this.fromName = fromName;
}
public String getFromMail() {
return fromMail;
}
public void setFromMail(String fromMail) {
this.fromMail = fromMail;
}
}
package mail;
import org.apache.log4j.Logger;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import org.springframework.validation.ValidationUtils;
public class RecommendationValidator implements Validator {
public RecommendationValidator (){
}
public boolean supports(Class aSupposedRecommendation) {
return RecommendationFormBeanImpl.class.equals(aSupposedRecommendation);
}
public void validate(Object recommendationAsAnObject, Errors errors) {
RecommendationFormBean recommendation = (RecommendationFormBean) recommendationAsAnObject;
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "fromName", "field.required", "Campo requerido");
RecommendationValidator.validateMail(recommendation.getFromMail(), errors);
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "toName", "field.required", "Campo requerido");
RecommendationValidator.validateMail(recommendation.getToMail(), errors);
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "productCode", "field.required", "Campo requerido");
}
public static synchronized void validateMail(String mail, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "fromMail", "field.required", "Campo Requerido");
if ( ! errors.hasFieldErrors("fromMail")) {
if (mail.indexOf("@") < 2 || mail.indexOf("@") >= mail.length() - 6 || mail.indexOf(".") < 5 || mail.indexOf(".") >= mail.length() - 3 || mail.length() <= 8){
errors.rejectValue("fromName", "not_zero", "Formato inválido para Email!");
Logger.getLogger(RecommendationValidator.class).info("Babou!!!");
}
}
}
}
<bean id="recommendationController"
class="mail.RecommendationControllerImpl"
parent="abstractEpFormController">
<property name="validator">
<bean class="mail.RecommendationValidator" />
</property>
<property name="commandName">
<value>recommendationFormBean</value>
</property>
<property name="commandClass">
<value>
mail.RecommendationFormBeanImpl
</value>
</property>
<property name="formView">
<value>recommendationForm</value>
</property>
<property name="successView">
<value>index</value>
</property>
</bean>