Nevermind - changing everything to ActionMessages solved it. Should've known. Below are the files I had to change - hopefully this helps folks in the future. I'll update my site when 1.2 is released. When's that going to happen - August? ;-)
http://tinyurl.com/3x4nw http://tinyurl.com/2rm65 Matt > -----Original Message----- > From: Matt Raible [mailto:[EMAIL PROTECTED] > Sent: Monday, March 22, 2004 9:36 AM > To: [EMAIL PROTECTED] > Subject: Validating Two Fields - how to do in 1.2? > > > My popular validate-two-fields howto seems to be broke with > the Struts nightly (20031202) build I'm using. The following > (which works w/ Struts 1.1) throws a NPE at the first errors.add(): > > public static boolean validateTwoFields(Object bean, > ValidatorAction va, > Field field, > ActionErrors errors, > > HttpServletRequest request) { > String value = > ValidatorUtils.getValueAsString(bean, > field.getProperty()); > String sProperty2 = field.getVarValue("secondProperty"); > String value2 = ValidatorUtils.getValueAsString(bean, > sProperty2); > > if (!GenericValidator.isBlankOrNull(value)) { > try { > if (!value.equals(value2)) { > errors.add(field.getKey(), // NPE THROWN HERE > > Resources.getActionError(request, va, field)); > > return false; > } > } catch (Exception e) { > errors.add(field.getKey(), > Resources.getActionError(request, > va, field)); > > return false; > } > } > > return true; > } > > I tried adding if (errors == null) errors = new > ActionErrors();, then everything works fine, but > getActionError is deprecated. So how do I upgrade this to 1.2? > > Looking at the example (code below) in the docs > (http://jakarta.apache.org/struts/userGuide/dev_validator.html > ), there signature of this method has changed slightly, > adding "ServletContext application". Also, the > Resources.getActionError isn't valid and and > errors.add(String, ActionError) is deprecated. > > Any ideas? I'll try upgrading to a newer build - but I > wanted to get this archived since folks will experience it > migrating from 1.1 to 1.2. > > Matt > > > public static boolean validateTwoFields( > Object bean, > ValidatorAction va, > Field field, > ActionErrors errors, > HttpServletRequest request, > ServletContext application) { > > String value = ValidatorUtils.getValueAsString( > bean, > field.getProperty()); > String sProperty2 = field.getVarValue("secondProperty"); > String value2 = ValidatorUtils.getValueAsString( > bean, > sProperty2); > > if (!GenericValidator.isBlankOrNull(value)) { > try { > if (!value.equals(value2)) { > errors.add(field.getKey(), > Resources.getActionError( > application, > request, > va, > field)); > > return false; > } > } catch (Exception e) { > errors.add(field.getKey(), > Resources.getActionError( > application, > request, > va, > field)); > return false; > } > } > > return true; > } > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]