You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2004/11/11 02:46:39 UTC
cvs commit: jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/spring/validation ValidationSupport.java
taylor 2004/11/10 17:46:39
Modified: portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/model
PortletApplicationModel.java
portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks
GenericFrameworkPortlet.java
portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/spring
PortletApplicationModelImpl.java
portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/spring/validation
ValidationSupport.java
Log:
some basic validation added
Revision Changes Path
1.2 +3 -2 jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/model/PortletApplicationModel.java
Index: PortletApplicationModel.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/model/PortletApplicationModel.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PortletApplicationModel.java 4 Nov 2004 18:09:33 -0000 1.1
+++ PortletApplicationModel.java 11 Nov 2004 01:46:39 -0000 1.2
@@ -16,6 +16,7 @@
package org.apache.portals.bridges.frameworks.model;
import java.util.Map;
+import java.util.ResourceBundle;
import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
@@ -40,7 +41,7 @@
Map createPrefsBean(ModelBean mb, Map prefs);
- boolean validate(Object bean, String view)
+ Map validate(Object bean, String view, ResourceBundle bundle)
throws PortletException;
String getForward(String view, String status);
1.6 +25 -13 jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/GenericFrameworkPortlet.java
Index: GenericFrameworkPortlet.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/GenericFrameworkPortlet.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- GenericFrameworkPortlet.java 5 Nov 2004 22:34:23 -0000 1.5
+++ GenericFrameworkPortlet.java 11 Nov 2004 01:46:39 -0000 1.6
@@ -19,6 +19,7 @@
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Map;
+import java.util.ResourceBundle;
import java.util.StringTokenizer;
import javax.portlet.ActionRequest;
@@ -31,6 +32,7 @@
import javax.portlet.PortletPreferences;
import javax.portlet.PortletRequest;
import javax.portlet.PortletRequestDispatcher;
+import javax.portlet.PortletSession;
import javax.portlet.ReadOnlyException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
@@ -66,6 +68,7 @@
private static final String PREFS_SUFFIX = ".prefs";
+ private static final String SESSION_ERROR_MESSAGES = "portals.bridges.framework.errors";
/**
* Action signature for calling velocity portlet actions
*/
@@ -129,9 +132,12 @@
String forward = null;
// (3) validate the bean
- if (model.validate(bean, view))
+ ResourceBundle bundle = this.getPortletConfig().getResourceBundle(request.getLocale());
+ Map errors = model.validate(bean, view, bundle);
+ if (errors.isEmpty())
{
-
+ request.getPortletSession().removeAttribute(SESSION_ERROR_MESSAGES, PortletSession.PORTLET_SCOPE);
+
// (4) execute the velocity action
String action = request.getParameter(FrameworkConstants.BRIDGES_ACTION);
if (null == action)
@@ -154,6 +160,7 @@
else
{
// failed validation
+ request.getPortletSession().setAttribute(SESSION_ERROR_MESSAGES, errors, PortletSession.PORTLET_SCOPE);
forward = model.getForward(view, ForwardConstants.FAILURE);
}
@@ -317,7 +324,7 @@
if (view == null || view.equals(this.getDefaultViewPage()))
{
// clear it
- response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, (String)null);
+ response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, view); //(String) null);
}
else
{
@@ -329,10 +336,10 @@
if (view == null || view.equals(this.getDefaultEditPage()))
{
// clear it
- response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, (String)null);
+ response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view); //(String) null);
}
else
- {
+ {
response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view);
}
}
@@ -340,7 +347,7 @@
{
if (view == null || view.equals(this.getDefaultHelpPage()))
{
- response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, (String)null);
+ response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, view); //(String) null);
}
else
{
@@ -355,10 +362,10 @@
if (view == null || view.equals(this.getDefaultViewPage()))
{
// clear it
- response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, (String)null);
+ response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, view); //(String) null);
}
else
- {
+ {
response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, view);
}
}
@@ -367,10 +374,10 @@
if (view == null || view.equals(this.getDefaultEditPage()))
{
// clear it
- response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, (String)null);
+ response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view); //(String) null);
}
else
- {
+ {
response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view);
}
}
@@ -378,10 +385,10 @@
{
if (view == null || view.equals(this.getDefaultHelpPage()))
{
- response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, (String)null);
+ response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, view); //(String) null);
}
else
- {
+ {
response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, view);
}
}
@@ -513,8 +520,13 @@
}
putRequestVariable(request, FrameworkConstants.FORWARD_TOOL, new Forwarder(model, request, response));
+ Map errors = (Map)request.getPortletSession().getAttribute(SESSION_ERROR_MESSAGES, PortletSession.PORTLET_SCOPE);
+ if (errors != null)
+ {
+ putRequestVariable(request, "ERRORS", errors);
+ }
request.setAttribute(FrameworkConstants.MODEL_TOOL, model);
-
+
PortletContext context = getPortletContext();
PortletRequestDispatcher rd = context.getRequestDispatcher(template);
rd.include(request, response);
1.2 +12 -9 jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/spring/PortletApplicationModelImpl.java
Index: PortletApplicationModelImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/spring/PortletApplicationModelImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PortletApplicationModelImpl.java 4 Nov 2004 18:09:33 -0000 1.1
+++ PortletApplicationModelImpl.java 11 Nov 2004 01:46:39 -0000 1.2
@@ -19,6 +19,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
+import java.util.ResourceBundle;
import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
@@ -32,7 +33,6 @@
import org.apache.portals.bridges.frameworks.model.ModelBean;
import org.apache.portals.bridges.frameworks.model.PortletApplicationModel;
import org.apache.portals.bridges.frameworks.spring.ModelBeanImpl;
-import org.apache.portals.bridges.frameworks.spring.validation.ValidationSupport;
/**
@@ -242,26 +242,30 @@
return prefs;
}
- public boolean validate(Object bean, String view)
+ public Map validate(Object bean, String view, ResourceBundle bundle)
throws PortletException
{
+ Map result = new HashMap();
if (validations == null)
{
- return true; // no validation configured
+ return result; // no validation configured
}
// Get the bean name from the bean-view map
String validatorFormName = (String)viewValidatorMap.get(view);
if (validatorFormName == null)
{
- return true; // no validation for this bean
+ return result; // no validation for this bean
}
- // TODO: do we need to create a validator per request?
Validator validator = new Validator(validations, validatorFormName);
// Tell the validator which bean to validate against.
validator.setParameter(Validator.BEAN_PARAM, bean);
+ // Parameters used by our validators
+ validator.setParameter("java.util.Map", result);
+ validator.setParameter("java.util.ResourceBundle", bundle);
+
ValidatorResults results = null;
try
@@ -270,16 +274,15 @@
results = validator.validate();
if (results.isEmpty())
{
- return true;
+ return result;
}
- ValidationSupport.printResults(bean, results, validations, validatorFormName);
}
catch (ValidatorException e)
{
throw new PortletException("Error in processing validation: ", e);
}
- return false;
+ return result;
}
public String getForward(String view, String status)
1.2 +300 -163 jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/spring/validation/ValidationSupport.java
Index: ValidationSupport.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/spring/validation/ValidationSupport.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ValidationSupport.java 4 Nov 2004 18:09:33 -0000 1.1
+++ ValidationSupport.java 11 Nov 2004 01:46:39 -0000 1.2
@@ -21,6 +21,7 @@
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
+import java.util.ResourceBundle;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.PropertyUtils;
@@ -33,234 +34,370 @@
import org.apache.commons.validator.ValidatorResources;
import org.apache.commons.validator.ValidatorResult;
import org.apache.commons.validator.ValidatorResults;
-import org.apache.commons.validator.util.ValidatorUtils;
-
/**
* ValidationSupport
*
- * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
+ * @author <a href="mailto:taylor@apache.org">David Sean Taylor </a>
* @version $Id$
*/
public class ValidationSupport
{
+
public static String getValueAsString(Object bean, String property)
{
Object value = null;
-
+
if (bean instanceof Map)
{
- value = ((Map)bean).get(property);
+ value = ((Map) bean).get(property);
}
else if (bean instanceof DynaBean)
{
- value = ((DynaBean)bean).get(property);
+ value = ((DynaBean) bean).get(property);
}
else
{
- try {
+ try
+ {
value = PropertyUtils.getProperty(bean, property);
-
- } catch(IllegalAccessException e) {
+
+ }
+ catch (IllegalAccessException e)
+ {
//log.error(e.getMessage(), e);
- } catch(InvocationTargetException e) {
+ }
+ catch (InvocationTargetException e)
+ {
//log.error(e.getMessage(), e);
- } catch(NoSuchMethodException e) {
+ }
+ catch (NoSuchMethodException e)
+ {
//log.error(e.getMessage(), e);
}
}
-
- if (value == null)
- {
- return null;
- }
- if (value instanceof String[])
+ if (value == null) { return null; }
+
+ if (value instanceof String[])
{
return ((String[]) value).length > 0 ? value.toString() : "";
- } else if (value instanceof Collection)
+ }
+ else if (value instanceof Collection)
{
return ((Collection) value).isEmpty() ? "" : value.toString();
- } else {
+ }
+ else
+ {
return value.toString();
- }
+ }
}
-
+
/**
* Checks if the field is required.
- *
- * @return boolean If the field isn't <code>null</code> and
- * has a length greater than zero, <code>true</code> is returned.
- * Otherwise <code>false</code>.
+ *
+ * @return boolean If the field isn't <code>null</code> and has a length
+ * greater than zero, <code>true</code> is returned. Otherwise
+ * <code>false</code>.
*/
- public static boolean validateRequired(Object bean, Field field)
+ public static boolean validateRequired(Object bean, ValidatorAction va, Field field, Map errors,
+ ResourceBundle bundle)
{
- String value = getValueAsString(bean, field.getProperty());
- boolean valid = !GenericValidator.isBlankOrNull(value);
- return valid;
+ String value = getValueAsString(bean, field.getProperty());
+ boolean valid = !GenericValidator.isBlankOrNull(value);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " is a required field.");
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} is a required field.";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
}
- public static boolean validateRange(Object bean, Field field)
+ public static boolean validateRange(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
{
- String result = ValidatorUtils.getValueAsString(bean, field.getProperty());
- if (result == null)
- return false;
-
- Integer intValue = GenericTypeValidator.formatInt(result);
- if (intValue == null)
- return false;
-
- int value = intValue.intValue();
-
+ int value = 0;
+ String result = getValueAsString(bean, field.getProperty());
+ if (result != null)
+ {
+ Integer intValue = GenericTypeValidator.formatInt(result);
+ if (intValue != null)
+ {
+ value = intValue.intValue();
+ }
+ }
+
String minResult = field.getVarValue("min");
if (minResult == null)
- return false;
-
+ {
+ minResult = "0";
+ }
String maxResult = field.getVarValue("max");
if (maxResult == null)
- return false;
-
+ {
+ maxResult = "0";
+ }
int min = GenericTypeValidator.formatInt(minResult).intValue();
int max = GenericTypeValidator.formatInt(maxResult).intValue();
- return GenericValidator.isInRange(value, min, max);
- }
+ boolean valid = GenericValidator.isInRange(value, min, max);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " is out of range: [" + min + "- " + max + "]");
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, minResult, maxResult};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} is out of range: [{1} - {2}]";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
+ }
- public static boolean validateDoubleRange(Object bean, Field field)
+ public static boolean validateDoubleRange(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
{
- String result = ValidatorUtils.getValueAsString(bean, field.getProperty());
- if (result == null)
- return false;
-
- Double doubleValue = GenericTypeValidator.formatDouble(result);
- if (doubleValue == null)
- return false;
-
- double value = doubleValue.intValue();
+ double value = 0;
+ String result = getValueAsString(bean, field.getProperty());
+ if (result != null)
+ {
+ Double doubleValue = GenericTypeValidator.formatDouble(result);
+ if (doubleValue != null)
+ {
+ value = doubleValue.doubleValue();
+ }
+ }
+ String minResult = field.getVarValue("min");
+ if (minResult == null)
+ {
+ minResult = "0";
+ }
+ String maxResult = field.getVarValue("max");
+ if (maxResult == null)
+ {
+ maxResult = "0";
+ }
- String minResult = field.getVarValue("min");
- if (minResult == null)
- return false;
+ double min = GenericTypeValidator.formatDouble(minResult).doubleValue();
+ double max = GenericTypeValidator.formatDouble(maxResult).doubleValue();
+ boolean valid = GenericValidator.isInRange(value, min, max);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " is out of range: [" + min + "- " + max + "]");
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, minResult, maxResult};
- String maxResult = field.getVarValue("max");
- if (maxResult == null)
- return false;
-
- double min = GenericTypeValidator.formatDouble(minResult).doubleValue();
- double max = GenericTypeValidator.formatDouble(maxResult).doubleValue();
-
- return GenericValidator.isInRange(value, min, max);
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} is out of range: [{1} - {2}]";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
}
-
- public static boolean validateMask(Object bean, Field field)
+
+ public static boolean validateMask(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
{
- String mask = field.getVarValue("mask");
- String value = ValidatorUtils.getValueAsString(bean, field.getProperty());
+ String value = getValueAsString(bean, field.getProperty());
- try
+ String mask = field.getVarValue("mask");
+ if (mask == null)
{
- if (!GenericValidator.isBlankOrNull(value)
- && !GenericValidator.matchRegexp(value, mask))
- {
- // errors.add(
- // field.getKey(),
- // Resources.getActionMessage(request, va, field));
+ return true; // no mask provide, let it pass
+ }
+
+ if (GenericValidator.isBlankOrNull(value))
+ {
+ return true; // this is how struts handles it
+ }
- return false;
- }
- else
+ boolean valid = GenericValidator.matchRegexp(value, mask);
+ if (!valid)
+ {
+ if (bundle == null)
{
- return true;
+ errors.put(field.getKey(), "Field " + field.getKey() + " failed to match validation pattern: " + mask);
}
- }
- catch (Exception e)
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, mask};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} failed to match validation pattern: {2}";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
+ }
+
+ public static boolean validateMaxLength(Object bean, ValidatorAction va, Field field, Map errors, ResourceBundle bundle)
+ {
+ String value = getValueAsString(bean, field.getProperty());
+
+ int max = Integer.parseInt(field.getVarValue("maxlength"));
+
+ if (GenericValidator.isBlankOrNull(value))
{
- //log.error(e.getMessage(), e);
+ return true;
}
- return true;
+
+ boolean valid = GenericValidator.maxLength(value, max);
+ if (!valid)
+ {
+ if (bundle == null)
+ {
+ errors.put(field.getKey(), "Field " + field.getKey() + " surpasses maximum length: " + max);
+ }
+ else
+ {
+ String displayName = bundle.getString(field.getArg(0).getKey());
+ if (displayName == null)
+ {
+ displayName = field.getKey();
+ }
+ Object[] args =
+ { displayName, new Integer(max)};
+
+ String message = bundle.getString(va.getMsg());
+ if (message == null)
+ {
+ message = "Field {0} surpasses maximum length {1}";
+ }
+ errors.put(field.getKey(), MessageFormat.format(message, args));
+ }
+ }
+ return valid;
}
+ public static void printResults(Object bean, ValidatorResults results, ValidatorResources resources, String formName)
+ {
+
+ boolean success = true;
- public static void printResults(
- Object bean,
- ValidatorResults results,
- ValidatorResources resources,
- String formName)
- {
-
- boolean success = true;
-
- // Start by getting the form for the current locale and Bean.
- Form form = resources.getForm(Locale.getDefault(), formName);
-
- System.out.println("\n\nValidating:");
- System.out.println(bean);
-
- // Iterate over each of the properties of the Bean which had messages.
- Iterator propertyNames = results.getPropertyNames().iterator();
- while (propertyNames.hasNext()) {
- String propertyName = (String) propertyNames.next();
-
- // Get the Field associated with that property in the Form
- Field field = form.getField(propertyName);
-
- // Look up the formatted name of the field from the Field arg0
- String prettyFieldName = propertyName; //apps.getString(field.getArg(0).getKey());
-
- // Get the result of validating the property.
- ValidatorResult result = results.getValidatorResult(propertyName);
-
- // Get all the actions run against the property, and iterate over their names.
- Map actionMap = result.getActionMap();
- Iterator keys = actionMap.keySet().iterator();
- while (keys.hasNext()) {
- String actName = (String) keys.next();
-
- // Get the Action for that name.
- ValidatorAction action = resources.getValidatorAction(actName);
-
- // If the result is valid, print PASSED, otherwise print FAILED
- System.out.println(
- propertyName
- + "["
- + actName
- + "] ("
- + (result.isValid(actName) ? "PASSED" : "FAILED")
- + ")");
-
- //If the result failed, format the Action's message against the formatted field name
- if (!result.isValid(actName)) {
- success = false;
- String message = "invalid field"; // apps.getString(action.getMsg());
- if (actName.equals("doubleRange"))
- {
- Arg f1 = field.getArg(1);
- Arg f2 = field.getArg(2);
- Arg f0 = field.getArg(0);
- Object[] args = { prettyFieldName, field.getVar("min").getValue(), field.getVar("max").getValue() };
- System.out.println(
- " Error message will be: "
- + MessageFormat.format(message, args));
- }
- else
- {
- Object[] args = { prettyFieldName };
- System.out.println(
- " Error message will be: "
- + MessageFormat.format(message, args));
- }
+ // Start by getting the form for the current locale and Bean.
+ Form form = resources.getForm(Locale.getDefault(), formName);
+
+ System.out.println("\n\nValidating:");
+ System.out.println(bean);
+
+ // Iterate over each of the properties of the Bean which had messages.
+ Iterator propertyNames = results.getPropertyNames().iterator();
+ while (propertyNames.hasNext())
+ {
+ String propertyName = (String) propertyNames.next();
+
+ // Get the Field associated with that property in the Form
+ Field field = form.getField(propertyName);
+
+ // Look up the formatted name of the field from the Field arg0
+ String prettyFieldName = propertyName; //apps.getString(field.getArg(0).getKey());
+
+ // Get the result of validating the property.
+ ValidatorResult result = results.getValidatorResult(propertyName);
+
+ // Get all the actions run against the property, and iterate over
+ // their names.
+ Map actionMap = result.getActionMap();
+ Iterator keys = actionMap.keySet().iterator();
+ while (keys.hasNext())
+ {
+ String actName = (String) keys.next();
+ // Get the Action for that name.
+ ValidatorAction action = resources.getValidatorAction(actName);
+
+ // If the result is valid, print PASSED, otherwise print FAILED
+ System.out.println(propertyName + "[" + actName + "] ("
+ + (result.isValid(actName) ? "PASSED" : "FAILED") + ")");
+
+ //If the result failed, format the Action's message against the
+ // formatted field name
+ if (!result.isValid(actName))
+ {
+ success = false;
+ String message = "invalid field"; // apps.getString(action.getMsg());
+ if (actName.equals("doubleRange"))
+ {
+ Arg f1 = field.getArg(1);
+ Arg f2 = field.getArg(2);
+ Arg f0 = field.getArg(0);
+ Object[] args =
+ { prettyFieldName, field.getVar("min").getValue(), field.getVar("max").getValue()};
+ System.out.println(" Error message will be: " + MessageFormat.format(message, args));
+ }
+ else
+ {
+ Object[] args =
+ { prettyFieldName};
+ System.out.println(" Error message will be: " + MessageFormat.format(message, args));
}
+
}
}
- if (success) {
- System.out.println("FORM VALIDATION PASSED");
- } else {
- System.out.println("FORM VALIDATION FAILED");
- }
-
}
-
-}
+ if (success)
+ {
+ System.out.println("FORM VALIDATION PASSED");
+ }
+ else
+ {
+ System.out.println("FORM VALIDATION FAILED");
+ }
+
+ }
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org