husted 2002/09/06 14:48:53
Modified: contrib/scaffold/src/java/org/apache/struts/scaffold
BaseForm.java
Log:
+ ActionForm: Add remoteAddr property (automatic). Add validate
method that will not return null.
Revision Changes Path
1.4 +68 -20
jakarta-struts/contrib/scaffold/src/java/org/apache/struts/scaffold/BaseForm.java
Index: BaseForm.java
===================================================================
RCS file:
/home/cvs/jakarta-struts/contrib/scaffold/src/java/org/apache/struts/scaffold/BaseForm.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BaseForm.java 16 Aug 2002 22:29:24 -0000 1.3
+++ BaseForm.java 6 Sep 2002 21:48:52 -0000 1.4
@@ -12,8 +12,11 @@
import org.apache.struts.util.BeanUtils; // Struts 1.0.x
import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionError;
+import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
-import org.apache.struts.validator.ValidatorForm;
+// import org.apache.struts.validator.ValidatorForm; // Struts 1.1
+import com.wintecinc.struts.action.ValidatorForm;
import org.apache.commons.scaffold.lang.ChainedException;
@@ -31,6 +34,33 @@
// ----------------------------------------------------------- Properties
/**
+ * The network address making this request.
+ * <p>
+ * This is the value returned by reqest.getRemoteAddr.
+ * It is provided so that this can be logged by components on
+ * the business tier if needed.
+ * This property is maintained automatically through the
+ * <code>reset</code> method.
+ */
+ private String remoteAddr = null;
+
+ /**
+ * Return our remoteAddr property.
+ */
+ public String getRemoteAddr() {
+ return (this.remoteAddr);
+ }
+
+
+ /**
+ * Set our remoteAddr property.
+ */
+ public void setRemoteAddr(String remoteAddr) {
+ this.remoteAddr = remoteAddr;
+ }
+
+
+ /**
* Our locale property.
* <p>
* If the formBean instance is mutable, this is set to the Struts
@@ -119,6 +149,42 @@
// --------------------------------------------------------- Public Methods
/**
+ * If bean is set to mutable, calls <code>resetSessionLocale</code>
+ * and <code>setRemoteAddr</code>.
+ *
+ * Subclasses resetting their own fields should observe the mutable
+ * state (<code>if (isMutable()) ...</code>).
+ *
+ * @param mapping The mapping used to select this instance
+ * @param request The servlet request we are processing
+ */
+ public void reset(
+ ActionMapping mapping,
+ HttpServletRequest request) {
+
+ if (isMutable()) {
+
+ resetSessionLocale(request);
+ setRemoteAddr(request.getRemoteAddr());
+ }
+
+ } // end reset
+
+
+ /**
+ * Return an empty ActionErrors or the result of calling
+ * the superclass validate. Will not return null.
+ */
+ public ActionErrors validate(ActionMapping mapping,
+ HttpServletRequest request) {
+
+ ActionErrors errors = super.validate(mapping,request);
+ if (null==errors) errors = new ActionErrors();
+ return errors;
+ }
+
+
+ /**
* Reset our locale property to the locale object found in
* the session associated with this request.
*/
@@ -151,24 +217,6 @@
request.getSession(true).setAttribute(Action.LOCALE_KEY,locale);
} // end putSessionLocale
-
-
- /**
- * If bean is set to mutable, calls <code>resetSessionLocale()</code>.
- *
- * Subclasses resetting their own fields should observe the mutable
- * state (<code>if (isMutable()) ...</code>).
- *
- * @param mapping The mapping used to select this instance
- * @param request The servlet request we are processing
- */
- public void reset(
- ActionMapping mapping,
- HttpServletRequest request) {
-
- if (isMutable()) resetSessionLocale(request);
-
- } // end reset
/**
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>