You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2009/04/11 00:43:12 UTC
svn commit: r764091 - in
/myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval:
./ annotation/ validation/
Author: gpetracek
Date: Fri Apr 10 22:43:11 2009
New Revision: 764091
URL: http://svn.apache.org/viewvc?rev=764091&view=rev
Log:
alternative ui validation error message for model validation
Modified:
myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java
myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/ExtValBeanValidationContext.java
myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java
myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java
Modified: myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java?rev=764091&r1=764090&r2=764091&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java Fri Apr 10 22:43:11 2009
@@ -254,6 +254,7 @@
if (violations != null && violations.size() > 0)
{
+ //TODO jsf 2.0 supports multiple messages -> use all messages
ConstraintViolation violation = (ConstraintViolation) violations.toArray()[0];
String violationMessage = violation.getMessage();
Modified: myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/ExtValBeanValidationContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/ExtValBeanValidationContext.java?rev=764091&r1=764090&r2=764091&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/ExtValBeanValidationContext.java (original)
+++ myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/ExtValBeanValidationContext.java Fri Apr 10 22:43:11 2009
@@ -379,6 +379,7 @@
return defaultMessageInterpolator;
}
+ @ToDo(Priority.HIGH)
public static void setMessageResolver(MessageResolver customMessageResolver)
{
messageResolver = customMessageResolver;
Modified: myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java?rev=764091&r1=764090&r2=764091&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java (original)
+++ myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java Fri Apr 10 22:43:11 2009
@@ -39,10 +39,13 @@
public @interface ModelValidation
{
public static final String DEFAULT_TARGET = "base";
+ public static final String DEFAULT_MESSAGE = "org.apache.myfaces.extensions.validator.bv_message";
boolean isActive() default false;
boolean displayInline() default false;
String[] validationTargets() default DEFAULT_TARGET;
+
+ String message() default DEFAULT_MESSAGE;
}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java?rev=764091&r1=764090&r2=764091&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java (original)
+++ myfaces/extensions/validator/branches/beanval_integration/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java Fri Apr 10 22:43:11 2009
@@ -18,27 +18,28 @@
*/
package org.apache.myfaces.extensions.validator.beanval.validation;
-import org.apache.myfaces.extensions.validator.beanval.ExtValBeanValidationContext;
-import org.apache.myfaces.extensions.validator.util.ExtValUtils;
-import org.apache.myfaces.extensions.validator.internal.ToDo;
-import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.extensions.validator.beanval.ExtValBeanValidationContext;
+import org.apache.myfaces.extensions.validator.beanval.annotation.ModelValidation;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
-import javax.faces.event.PhaseListener;
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
-import javax.faces.context.FacesContext;
+import javax.faces.event.PhaseListener;
import javax.faces.validator.ValidatorException;
-import javax.faces.application.FacesMessage;
-import javax.faces.component.UIComponent;
import javax.validation.ConstraintViolation;
-import javax.validation.ValidatorFactory;
import javax.validation.Validation;
+import javax.validation.ValidatorFactory;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import java.util.Iterator;
-import java.util.ArrayList;
/**
* @author Gerhard Petracek
@@ -63,7 +64,7 @@
List processedValidationTargets = new ArrayList();
- for(ModelValidationEntry modelValidationEntry : modelValidationEntries)
+ for (ModelValidationEntry modelValidationEntry : modelValidationEntries)
{
processModelValidation(modelValidationEntry, processedValidationTargets);
}
@@ -76,15 +77,15 @@
private void processModelValidation(ModelValidationEntry modelValidationEntry, List processedValidationTargets)
{
- for(Object validationTarget : modelValidationEntry.getValidationTargets())
+ for (Object validationTarget : modelValidationEntry.getValidationTargets())
{
- if(processedValidationTargets.contains(validationTarget) &&
+ if (processedValidationTargets.contains(validationTarget) &&
!modelValidationEntry.getMetaData().displayInline())
{
continue;
}
- if(!processedValidationTargets.contains(validationTarget))
+ if (!processedValidationTargets.contains(validationTarget))
{
processedValidationTargets.add(validationTarget);
}
@@ -102,10 +103,10 @@
//jsf < 2.0 will just use the first one (it's only a little overhead)
Iterator violationsIterator = violations.iterator();
ConstraintViolation constraintViolation;
- while(violationsIterator.hasNext())
+ while (violationsIterator.hasNext())
{
- constraintViolation = (ConstraintViolation)violationsIterator.next();
- if(modelValidationEntry.getMetaData().displayInline())
+ constraintViolation = (ConstraintViolation) violationsIterator.next();
+ if (modelValidationEntry.getMetaData().displayInline())
{
processConstraintViolation(constraintViolation, modelValidationEntry, validationTarget, true);
}
@@ -122,9 +123,9 @@
@ToDo(value = Priority.HIGH, description = "use ExtValUtils#createFacesMessage" +
"check ExtValUtils#executeAfterThrowingInterceptors")
private void processConstraintViolation(ConstraintViolation violation,
- ModelValidationEntry modelValidationEntry,
- Object validationTarget,
- boolean displayAtComponent)
+ ModelValidationEntry modelValidationEntry,
+ Object validationTarget,
+ boolean displayAtComponent)
{
String violationMessage = violation.getMessage();
@@ -135,12 +136,23 @@
UIComponent uiComponent = null;
String clientId = null;
- if(displayAtComponent)
+ if (displayAtComponent)
{
uiComponent = modelValidationEntry.getComponent();
clientId = modelValidationEntry.getComponent().getClientId(facesContext);
}
+ if (!ModelValidation.DEFAULT_MESSAGE.equals(modelValidationEntry.getMetaData().message()))
+ {
+ String validationErrorMessage = ExtValBeanValidationContext.getCurrentInstance().getMessageInterpolator()
+ .interpolate(modelValidationEntry.getMetaData().message(),
+ violation.getConstraintDescriptor(),
+ validationTarget);
+
+ validatorException.getFacesMessage().setSummary(validationErrorMessage);
+ validatorException.getFacesMessage().setDetail(validationErrorMessage);
+ }
+
ExtValUtils.executeAfterThrowingInterceptors(
uiComponent,
null,