We have used the <s:validateCompareTo> with the "comparator"
attribute, we have inserted a value binding (like
comparator=#{bean.myComparator}) in the attribute but we have received
this exception:
java.lang.ClassCastException: comparator must be type interface java.util.Comparator but is type class java.lang.String
at org.apache.myfaces.custom.comparetovalidator.CompareToValidator.createComparator(CompareToValidator.java:347)
at org.apache.myfaces.custom.comparetovalidator.CompareToValidator.validate(CompareToValidator.java:292)
even if we get a java.util.Comparator from the bean.
We have solved the problem with this patch:
Index: C:/current/tomahawk/sandbox/core/src/main/java/org/apache/myfaces/custom/comparetovalidator/ValidateCompareToTag.java
===================================================================
---
C:/current/tomahawk/sandbox/core/src/main/java/org/apache/myfaces/custom/comparetovalidator/ValidateCompareToTag.java
(revision 425405)
+++
C:/current/tomahawk/sandbox/core/src/main/java/org/apache/myfaces/custom/comparetovalidator/ValidateCompareToTag.java
(working copy)
@@ -71,7 +71,7 @@
if (_comparator != null)
{
ValueBinding vb = facesContext.getApplication().createValueBinding(_comparator);
- validator.setComparator(vb.getValue(facesContext).toString());
+ validator.setComparator(vb.getValue(facesContext));
}
if (_foreignComponentName != null)
with this correction the "comparator" property receives the object
instead at first it receives a String (the cause of the later
exception).
Is it correct or we have used the comparator attribute in a wrong way?
Thanks to all,
Mt3
- ValidateCompareToTag MT3 MTCube
- Re: ValidateCompareToTag Mike Kienenberger
- Re: ValidateCompareToTag Matthias Wessendorf
- Re: ValidateCompareToTag Mike Kienenberger
- Re: ValidateCompareToTag Matthias Wessendorf
- Re: ValidateCompareToTag Mike Kienenberger
- Re: ValidateCompareToTag Mike Kienenberger
