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 }