View Javadoc

    1   /*
    2    * $Id: RegistrationForm.java 471754 2006-11-06 14:55:09Z husted $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21
    22
    23  package org.apache.struts.webapp.example2;
    24
    25
    26  import javax.servlet.http.HttpServletRequest;
    27  import org.apache.struts.action.ActionMessage;
    28  import org.apache.struts.action.ActionErrors;
    29  import org.apache.struts.action.ActionMapping;
    30  import org.apache.struts.validator.ValidatorForm;
    31
    32
    33  /**
    34   * Form bean for the user registration page.  This form has the following
    35   * fields, with default values in square brackets:
    36   * <ul>
    37   * <li><b>action</b> - The maintenance action we are performing (Create,
    38   *     Delete, or Edit).
    39   * <li><b>fromAddress</b> - The EMAIL address of the sender, to be included
    40   *     on sent messages.  [REQUIRED]
    41   * <li><b>fullName</b> - The full name of the sender, to be included on
    42   *     sent messages.  [REQUIRED]
    43   * <li><b>password</b> - The password used by this user to log on.
    44   * <li><b>password2</b> - The confirmation password, which must match
    45   *     the password when changing or setting.
    46   * <li><b>replyToAddress</b> - The "Reply-To" address to be included on
    47   *     sent messages.  [Same as from address]
    48   * <li><b>username</b> - The registered username, which must be unique.
    49   *     [REQUIRED]
    50   * </ul>
    51   *
    52   * @author Craig R. McClanahan
    53   * @version $Rev: 471754 $ $Date: 2006-11-06 08:55:09 -0600 (Mon, 06 Nov 2006) $
    54   */
    55
    56  public final class RegistrationForm extends ValidatorForm  {
    57
    58
    59      // ----------------------------------------------------- Instance Variables
    60
    61
    62      /**
    63       * The maintenance action we are performing (Create or Edit).
    64       */
    65      private String action = "Create";
    66
    67
    68      /**
    69       * The from address.
    70       */
    71      private String fromAddress = null;
    72
    73
    74      /**
    75       * The full name.
    76       */
    77      private String fullName = null;
    78
    79
    80      /**
    81       * The password.
    82       */
    83      private String password = null;
    84
    85
    86      /**
    87       * The confirmation password.
    88       */
    89      private String password2 = null;
    90
    91
    92      /**
    93       * The reply to address.
    94       */
    95      private String replyToAddress = null;
    96
    97
    98
    99      /**
    100      * The username.
    101      */
    102     private String username = null;
    103
    104
    105     // ----------------------------------------------------------- Properties
    106
    107
    108     /**
    109      * Return the maintenance action.
    110      */
    111     public String getAction() {
    112
    113     return (this.action);
    114
    115     }
    116
    117
    118     /**
    119      * Set the maintenance action.
    120      *
    121      * @param action The new maintenance action.
    122      */
    123     public void setAction(String action) {
    124
    125         this.action = action;
    126
    127     }
    128
    129
    130     /**
    131      * Return the from address.
    132      */
    133     public String getFromAddress() {
    134
    135     return (this.fromAddress);
    136
    137     }
    138
    139
    140     /**
    141      * Set the from address.
    142      *
    143      * @param fromAddress The new from address
    144      */
    145     public void setFromAddress(String fromAddress) {
    146
    147         this.fromAddress = fromAddress;
    148
    149     }
    150
    151
    152     /**
    153      * Return the full name.
    154      */
    155     public String getFullName() {
    156
    157     return (this.fullName);
    158
    159     }
    160
    161
    162     /**
    163      * Set the full name.
    164      *
    165      * @param fullName The new full name
    166      */
    167     public void setFullName(String fullName) {
    168
    169         this.fullName = fullName;
    170
    171     }
    172
    173
    174     /**
    175      * Return the password.
    176      */
    177     public String getPassword() {
    178
    179     return (this.password);
    180
    181     }
    182
    183
    184     /**
    185      * Set the password.
    186      *
    187      * @param password The new password
    188      */
    189     public void setPassword(String password) {
    190
    191         this.password = password;
    192
    193     }
    194
    195
    196     /**
    197      * Return the confirmation password.
    198      */
    199     public String getPassword2() {
    200
    201     return (this.password2);
    202
    203     }
    204
    205
    206     /**
    207      * Set the confirmation password.
    208      *
    209      * @param password2 The new confirmation password
    210      */
    211     public void setPassword2(String password2) {
    212
    213         this.password2 = password2;
    214
    215     }
    216
    217
    218     /**
    219      * Return the reply to address.
    220      */
    221     public String getReplyToAddress() {
    222
    223     return (this.replyToAddress);
    224
    225     }
    226
    227
    228     /**
    229      * Set the reply to address.
    230      *
    231      * @param replyToAddress The new reply to address
    232      */
    233     public void setReplyToAddress(String replyToAddress) {
    234
    235         this.replyToAddress = replyToAddress;
    236
    237     }
    238
    239
    240     /**
    241      * Return the username.
    242      */
    243     public String getUsername() {
    244
    245     return (this.username);
    246
    247     }
    248
    249
    250     /**
    251      * Set the username.
    252      *
    253      * @param username The new username
    254      */
    255     public void setUsername(String username) {
    256
    257         this.username = username;
    258
    259     }
    260
    261
    262     // --------------------------------------------------------- Public Methods
    263
    264
    265     /**
    266      * Reset all properties to their default values.
    267      *
    268      * @param mapping The mapping used to select this instance
    269      * @param request The servlet request we are processing
    270      */
    271     public void reset(ActionMapping mapping, HttpServletRequest request) {
    272
    273         this.action = "Create";
    274         this.fromAddress = null;
    275         this.fullName = null;
    276         this.password = null;
    277         this.password2 = null;
    278         this.replyToAddress = null;
    279         this.username = null;
    280
    281     }
    282
    283
    284     /**
    285      * Validate the properties that have been set from this HTTP request,
    286      * and return an <code>ActionErrors</code> object that encapsulates any
    287      * validation errors that have been found.  If no errors are found, return
    288      * <code>null</code> or an <code>ActionErrors</code> object with no
    289      * recorded error messages.
    290      *
    291      * @param mapping The mapping used to select this instance
    292      * @param request The servlet request we are processing
    293      */
    294     public ActionErrors validate(ActionMapping mapping,
    295                                  HttpServletRequest request) {
    296
    297         // Perform validator framework validations
    298         ActionErrors errors = super.validate(mapping, request);
    299
    300         // Only need crossfield validations here
    301         if (((password == null) && (password2 != null)) ||
    302             ((password != null) && (password2 == null)) ||
    303             ((password != null) && (password2 != null) &&
    304              !password.equals(password2))) {
    305             errors.add("password2",
    306                        new ActionMessage("error.password.match"));
    307         }
    308         return errors;
    309
    310     }
    311
    312
    313 }