craigmcc 2002/07/18 21:02:06
Modified: . STATUS
src/share/org/apache/struts/util StrutsValidator.java
Log:
Make StrutsValidator validators work with indexed string values.
PR: Bugzilla #10919
Submitted by: James Turner <turner at blackbear.com>
Thanks for the patch!
Revision Changes Path
1.31 +2 -3 jakarta-struts/STATUS
Index: STATUS
===================================================================
RCS file: /home/cvs/jakarta-struts/STATUS,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- STATUS 19 Jul 2002 03:30:19 -0000 1.30
+++ STATUS 19 Jul 2002 04:02:05 -0000 1.31
@@ -6,7 +6,7 @@
OUTSTANDING BUGS IN STRUTS 1.1-b1 AND NIGHTLY BUILDS
====================================================
- 20 open bugs to swat!!
+ 18 open bugs to swat!!
Controller:
@@ -65,7 +65,6 @@
10584 Not all validation files are read in Validation PlugIn
10782 If two fields are required, and one has a mask, the mask is not checked if
the other field is blank
10868 Validator does not support non-default resource bundles
-10919 PATCH: ValidatorUtils can't handle StringArrays
Web Site:
1.5 +126 -39
jakarta-struts/src/share/org/apache/struts/util/StrutsValidator.java
Index: StrutsValidator.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/src/share/org/apache/struts/util/StrutsValidator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- StrutsValidator.java 30 Jun 2002 03:28:46 -0000 1.4
+++ StrutsValidator.java 19 Jul 2002 04:02:06 -0000 1.5
@@ -101,19 +101,24 @@
ActionErrors errors,
HttpServletRequest request) {
- String value = null;
- if (field.getProperty() != null && field.getProperty().length() > 0)
- value = ValidatorUtil.getValueAsString(bean, field.getProperty());
-
- if (GenericValidator.isBlankOrNull(value)) {
- errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request,
va, field));
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
+ if (GenericValidator.isBlankOrNull(value)) {
+ errors.add(field.getKey(),
+ StrutsValidatorUtil.getActionError(request, va, field));
+
+ return false;
+ } else {
+ return true;
+ }
- return false;
- } else {
- return true;
- }
}
+
/**
* <p>Checks if the field matches the regular expression in the field's mask
attribute.</p>
*
@@ -130,25 +135,30 @@
ActionErrors errors,
HttpServletRequest request) {
- String mask = field.getVarValue("mask");
-
- if (field.getProperty() != null && field.getProperty().length() > 0) {
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
-
- try {
- if (!GenericValidator.isBlankOrNull(value) &&
!GenericValidator.matchRegexp(value, mask)) {
- errors.add(field.getKey(),
StrutsValidatorUtil.getActionError(request, va, field));
-
- return false;
- } else {
- return true;
- }
+ String mask = field.getVarValue("mask");
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean,
+ field.getProperty());
+ }
+ try {
+ if (!GenericValidator.isBlankOrNull(value) &&
+ !GenericValidator.matchRegexp(value, mask)) {
+ errors.add(field.getKey(),
+ StrutsValidatorUtil.getActionError(request, va,
+ field));
+
+ return false;
+ } else {
+ return true;
+ }
} catch (Exception e) {
- LOG.error(e.getMessage(), e);
+ LOG.error(e.getMessage(), e);
}
- }
+ return true;
- return true;
}
@@ -169,7 +179,12 @@
HttpServletRequest request) {
Byte result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value)) {
result = GenericTypeValidator.formatByte(value);
@@ -198,7 +213,12 @@
ActionErrors errors,
HttpServletRequest request) {
Short result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value)) {
result = GenericTypeValidator.formatShort(value);
@@ -227,7 +247,12 @@
ActionErrors errors,
HttpServletRequest request) {
Integer result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value)) {
result = GenericTypeValidator.formatInt(value);
@@ -256,7 +281,12 @@
ActionErrors errors,
HttpServletRequest request) {
Long result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value)) {
result = GenericTypeValidator.formatLong(value);
@@ -285,7 +315,12 @@
ActionErrors errors,
HttpServletRequest request) {
Float result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value)) {
result = GenericTypeValidator.formatFloat(value);
@@ -314,7 +349,12 @@
ActionErrors errors,
HttpServletRequest request) {
Double result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value)) {
result = GenericTypeValidator.formatDouble(value);
@@ -350,8 +390,13 @@
ActionErrors errors,
HttpServletRequest request) {
- Date result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ Date result = null;
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
String datePattern = field.getVarValue("datePattern");
String datePatternStrict = field.getVarValue("datePatternStrict");
Locale locale = StrutsValidatorUtil.getLocale(request);
@@ -397,7 +442,12 @@
ActionErrors errors,
HttpServletRequest request) {
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
String sMin = field.getVarValue("min");
String sMax = field.getVarValue("max");
@@ -440,7 +490,12 @@
HttpServletRequest request) {
Long result = null;
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value)) {
result = GenericTypeValidator.formatCreditCard(value);
@@ -471,7 +526,12 @@
ActionErrors errors,
HttpServletRequest request) {
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
if (!GenericValidator.isBlankOrNull(value) &&
!GenericValidator.isEmail(value)) {
errors.add(field.getKey(), StrutsValidatorUtil.getActionError(request,
va, field));
@@ -498,7 +558,12 @@
ActionErrors errors,
HttpServletRequest request) {
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
String sMaxLength = field.getVarValue("maxlength");
if (value != null) {
@@ -537,7 +602,12 @@
ActionErrors errors,
HttpServletRequest request) {
- String value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ String value = null;
+ if (isString(bean)) {
+ value = (String) bean;
+ } else {
+ value = ValidatorUtil.getValueAsString(bean, field.getProperty());
+ }
String sMinLength = field.getVarValue("minlength");
if (value != null) {
@@ -557,5 +627,22 @@
return true;
}
+
+
+ /**
+ * <p>Return <code>true</code> if the specified object is a String or
+ * a <code>null</code> value.</p>
+ *
+ * @param o Object to be tested
+ */
+ private static boolean isString(Object o) {
+
+ if (o == null) {
+ return (true);
+ }
+ return (String.class.isInstance(o));
+
+ }
+
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>