The new version of getValidatorResources() added here takes a ServletContext and an HttpServletRequest. It seems to me that it should only take the request, since the servlet context can be obtained from that. It would be a little less error-prone this way, too.
My 2 cents. -- Martin Cooper > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Sent: Friday, October 11, 2002 3:18 PM > To: [EMAIL PROTECTED] > Subject: cvs commit: > jakarta-struts/src/share/org/apache/struts/validator > ValidatorPlugIn.java > > > rleland 2002/10/11 15:17:51 > > Modified: src/share/org/apache/struts/taglib/html > JavascriptValidatorTag.java > src/share/org/apache/struts/util RequestUtils.java > StrutsValidatorUtil.java > src/share/org/apache/struts/validator > ValidatorPlugIn.java > Log: > Buzilla 10348 - based on Patch by Eddie Bush > Allow Ranges for Floating point numbers > Eddie I didn't place your name in RequestUtils.java, > since that patch didn't make sense. However I did > placed it in StrutsValidatorUtil which met the 10 lines > rule of thumb. > > Revision Changes Path > 1.5 +8 -3 > jakarta-struts/src/share/org/apache/struts/taglib/html/Javascr iptValidatorTag.java > > Index: JavascriptValidatorTag.java > =================================================================== > RCS file: > /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/ht ml/JavascriptValidatorTag.java,v > retrieving revision 1.4 > retrieving revision 1.5 > diff -u -r1.4 -r1.5 > --- JavascriptValidatorTag.java 9 Jul 2002 23:58:52 > -0000 1.4 > +++ JavascriptValidatorTag.java 11 Oct 2002 22:17:50 > -0000 1.5 > @@ -68,6 +68,7 @@ > import javax.servlet.jsp.JspWriter; > import javax.servlet.jsp.PageContext; > import javax.servlet.jsp.tagext.BodyTagSupport; > + > import org.apache.commons.validator.Field; > import org.apache.commons.validator.Form; > import org.apache.commons.validator.ValidatorAction; > @@ -78,6 +79,9 @@ > import org.apache.struts.validator.ValidatorPlugIn; > import org.apache.struts.util.MessageResources; > import org.apache.struts.util.StrutsValidatorUtil; > +import org.apache.struts.util.RequestUtils; > +import org.apache.struts.Globals; > +import org.apache.struts.config.ApplicationConfig; > > > /** > @@ -254,9 +258,10 @@ > public int doStartTag() throws JspException { > StringBuffer results = new StringBuffer(); > > + ApplicationConfig config = > RequestUtils.getApplicationConfig(pageContext); > ValidatorResources resources = (ValidatorResources) > - > pageContext.getAttribute(ValidatorPlugIn.VALIDATOR_KEY, > PageContext.APPLICATION_SCOPE); > - > + pageContext.getAttribute(ValidatorPlugIn.VALIDATOR_KEY + > + config.getPrefix(),PageContext.APPLICATION_SCOPE); > Locale locale = null; > try { > locale = (Locale) > pageContext.getAttribute(Action.LOCALE_KEY, > PageContext.SESSION_SCOPE); > > > > 1.55 +18 -11 > jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java > > Index: RequestUtils.java > =================================================================== > RCS file: > /home/cvs/jakarta-struts/src/share/org/apache/struts/util/Requ estUtils.java,v > retrieving revision 1.54 > retrieving revision 1.55 > diff -u -r1.54 -r1.55 > --- RequestUtils.java 8 Oct 2002 06:16:41 -0000 1.54 > +++ RequestUtils.java 11 Oct 2002 22:17:51 -0000 1.55 > @@ -90,7 +90,6 @@ > import org.apache.struts.action.ActionError; > import org.apache.struts.action.ActionErrors; > import org.apache.struts.action.ActionForm; > -import org.apache.struts.action.ActionForward; > import org.apache.struts.action.ActionMapping; > import org.apache.struts.action.ActionMessage; > import org.apache.struts.action.ActionMessages; > @@ -103,7 +102,6 @@ > import org.apache.struts.config.FormBeanConfig; > import org.apache.struts.config.ForwardConfig; > import org.apache.struts.taglib.html.Constants; > -import org.apache.struts.upload.FormFile; > import org.apache.struts.upload.MultipartRequestHandler; > > > @@ -1190,9 +1188,6 @@ > * > * @param request The servlet request we are processing > * @param forward ForwardConfig to be evaluated > - * @param slashPrefixed If true, method takes care to > prefix the forward path > - * URL with a '/' if needed. If false, the '/' is > added only if forward > - * path is used after another prefix. > * @since Struts 1.1b2 > */ > public static String forwardURL(HttpServletRequest request, > @@ -1452,6 +1447,20 @@ > > } > > + /** > + * Return the ApplicationConfig object is it exists, > null otherwise. > + * @param pageContext The page context. > + * @return the ApplicationConfig object > + */ > + public static ApplicationConfig > getApplicationConfig(PageContext pageContext) { > + ApplicationConfig appConfig = (ApplicationConfig) > + > pageContext.getRequest().getAttribute(Action.APPLICATION_KEY); > + if (appConfig == null) { // Backwards compatibility hack > + appConfig = (ApplicationConfig) > + > pageContext.getServletContext().getAttribute(Action.APPLICATION_KEY); > + } > + return appConfig; > + } > > /** > * Return the list of module prefixes that are defined for > @@ -1474,8 +1483,6 @@ > if (!name.startsWith(Action.APPLICATION_KEY)) { > continue; > } > - ApplicationConfig config = (ApplicationConfig) > - context.getAttribute(name); > String prefix = > name.substring(Action.APPLICATION_KEY.length()); > if (prefix.length() > 0) { > list.add(prefix); > > > > 1.5 +20 -7 > jakarta-struts/src/share/org/apache/struts/util/StrutsValidato > rUtil.java > > Index: StrutsValidatorUtil.java > =================================================================== > RCS file: > /home/cvs/jakarta-struts/src/share/org/apache/struts/util/Stru tsValidatorUtil.java,v > retrieving revision 1.4 > retrieving revision 1.5 > diff -u -r1.4 -r1.5 > --- StrutsValidatorUtil.java 10 Jul 2002 00:00:19 > -0000 1.4 > +++ StrutsValidatorUtil.java 11 Oct 2002 22:17:51 > -0000 1.5 > @@ -68,14 +68,14 @@ > import org.apache.struts.action.ActionError; > import org.apache.struts.action.ActionErrors; > import org.apache.struts.util.MessageResources; > -import org.apache.commons.beanutils.PropertyUtils; > import org.apache.commons.validator.Arg; > import org.apache.commons.validator.Field; > import org.apache.commons.validator.Validator; > import org.apache.commons.validator.ValidatorAction; > import org.apache.commons.validator.ValidatorResources; > -import org.apache.commons.validator.ValidatorUtil; > import org.apache.struts.validator.ValidatorPlugIn; > +import org.apache.struts.config.ApplicationConfig; > +import org.apache.struts.Globals; > > > /** > @@ -83,6 +83,7 @@ > * from different scopes of the application.</p> > * > * @author David Winterfeldt > + * @author Eddie Bush > * @version $Revision$ $Date$ > * @since Struts 1.1 > */ > @@ -107,11 +108,23 @@ > > /** > * Retrieve <code>ValidatorResources</code> for the module. > + * > + * @deprecated This method can only return the > resources for the default > + * module. Use > getValidatorResources(HttpServletRequest, ServletContext) > + * to get the resources for the current application module. > */ > public static ValidatorResources > getValidatorResources(ServletContext application) { > return > (ValidatorResources)application.getAttribute(ValidatorPlugIn.V ALIDATOR_KEY); > } > > + /** > + * Retrieve <code>ValidatorResources</code> for the > current module. > + */ > + public static ValidatorResources > getValidatorResources(ServletContext > application,HttpServletRequest request) { > + return (ValidatorResources) > application.getAttribute(ValidatorPlugIn.VALIDATOR_KEY + > + > ((ApplicationConfig)request.getAttribute(Globals.APPLICATION_K EY)).getPrefix()); > + } > + > /** > * Retrieve <code>MessageResources</code> for the > application module. > * > @@ -291,7 +304,7 @@ > ServletContext > application, HttpServletRequest request, > ActionErrors > errors, int page) { > > - ValidatorResources resources = > StrutsValidatorUtil.getValidatorResources(application); > + ValidatorResources resources = > StrutsValidatorUtil.getValidatorResources(application,request); > Locale locale = StrutsValidatorUtil.getLocale(request); > > Validator validator = new Validator(resources, key); > > > > 1.7 +5 -5 > jakarta-struts/src/share/org/apache/struts/validator/Validator PlugIn.java > > Index: ValidatorPlugIn.java > =================================================================== > RCS file: > /home/cvs/jakarta-struts/src/share/org/apache/struts/validator /ValidatorPlugIn.java,v > retrieving revision 1.6 > retrieving revision 1.7 > diff -u -r1.6 -r1.7 > --- ValidatorPlugIn.java 10 Jul 2002 00:00:27 -0000 1.6 > +++ ValidatorPlugIn.java 11 Oct 2002 22:17:51 -0000 1.7 > @@ -165,7 +165,7 @@ > // Load our database from persistent storage > try { > initResources(); > - > servlet.getServletContext().setAttribute(VALIDATOR_KEY, resources); > + > servlet.getServletContext().setAttribute(VALIDATOR_KEY + > config.getPrefix(), resources); > } catch (Exception e) { > log.error(e.getMessage(), e); > throw new UnavailableException > > > > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>