cedric 02/02/07 06:02:22 Modified: src/share/org/apache/struts/action RequestProcessor.java Log: Let init() method throw a ServletException. This allows sublclasses to report errors. Factorize calls to RequestDispatcher.include() or .invoke(). This allows subclasses to catch such calls Revision Changes Path 1.3 +49 -37 jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java Index: RequestProcessor.java =================================================================== RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- RequestProcessor.java 17 Jan 2002 00:15:05 -0000 1.2 +++ RequestProcessor.java 7 Feb 2002 14:02:22 -0000 1.3 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java,v 1.2 2002/01/17 00:15:05 craigmcc Exp $ - * $Revision: 1.2 $ - * $Date: 2002/01/17 00:15:05 $ + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/action/RequestProcessor.java,v 1.3 2002/02/07 14:02:22 cedric Exp $ + * $Revision: 1.3 $ + * $Date: 2002/02/07 14:02:22 $ * * ==================================================================== * @@ -92,7 +92,7 @@ * interested in changing.</p> * * @author Craig R. McClanahan - * @version $Revision: 1.2 $ $Date: 2002/01/17 00:15:05 $ + * @version $Revision: 1.3 $ $Date: 2002/02/07 14:02:22 $ * @since Struts 1.1 */ @@ -166,9 +166,11 @@ * * @param servlet The ActionServlet we are associated with * @param appConfig The ApplicationConfig we are associated with. + * @throws ServletException If an error occor during initialization */ public void init(ActionServlet servlet, - ApplicationConfig appConfig) { + ApplicationConfig appConfig) + throws ServletException { synchronized (actions) { actions.setFast(false); @@ -393,15 +395,7 @@ if (path.startsWith("/") && !forward.getContextRelative()) { path = appConfig.getPrefix() + path; } - RequestDispatcher rd = - getServletContext().getRequestDispatcher(path); - if (rd == null) { - response.sendError - (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - getInternal().getMessage("requestDispatcher", path)); - return; - } - rd.forward(request, response); + doForward( path, request, response); } } @@ -538,21 +532,13 @@ // Construct a request dispatcher for the specified path String uri = appConfig.getPrefix() + forward; - RequestDispatcher rd = - getServletContext().getRequestDispatcher(uri); - if (rd == null) { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - getInternal().getMessage("requestDispatcher", - uri)); - return (false); - } // Delegate the processing of this request // FIXME - exception handling? if (getDebug() >= 2) { log(" Delegating via forward to '" + uri + "'"); } - rd.forward(request, response); + doForward(uri, request, response); return (false); } @@ -585,21 +571,13 @@ // Construct a request dispatcher for the specified path String uri = appConfig.getPrefix() + include; - RequestDispatcher rd = - getServletContext().getRequestDispatcher(uri); - if (rd == null) { - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - getInternal().getMessage("requestDispatcher", - uri)); - return (false); - } // Delegate the processing of this request // FIXME - exception handling? if (getDebug() >= 2) { log(" Delegating via forward to '" + uri + "'"); } - rd.include(request, response); + doInclude(uri, request, response); return (false); } @@ -959,19 +937,54 @@ request = ((MultipartRequestWrapper) request).getRequest(); } String uri = appConfig.getPrefix() + input; + doForward(uri, request, response); + return (false); + + } + + /** + * Do a forward to specified uri using request dispatcher. + * This method is used by all internal method needi + * @param uri Uri or Definition name to forward + * @param request Current page request + * @param response Current page response + * @since 1.1 + * @author Cedric Dumoulin + */ + protected void doForward(String uri, HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); if (rd == null) { response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, getInternal().getMessage ("requestDispatcher", uri)); - return (false); + return; } rd.forward(request, response); - return (false); - } - + /** + * Do an include of specified uri using request dispatcher. + * This method is used by all internal method needi + * @param uri Uri of page to include + * @param request Current page request + * @param response Current page response + * @since 1.1 + * @author Cedric Dumoulin + */ + protected void doInclude(String uri, HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException + { + RequestDispatcher rd = getServletContext().getRequestDispatcher(uri); + if (rd == null) { + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + getInternal().getMessage + ("requestDispatcher", uri)); + return; + } + rd.include(request, response); + } // -------------------------------------------------------- Support Methods @@ -1005,7 +1018,6 @@ return (servlet.getServletContext()); } - /** * Log the specified message to the servlet context log for this
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>