Author: nbubna
Date: Thu Oct 8 17:24:48 2009
New Revision: 823236
URL: http://svn.apache.org/viewvc?rev=823236&view=rev
Log:
VELTOOLS-123 check request attributes for non-default layouts (thanks to
Frederic Daoud)
Modified:
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
Modified:
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
URL:
http://svn.apache.org/viewvc/velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java?rev=823236&r1=823235&r2=823236&view=diff
==============================================================================
---
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
(original)
+++
velocity/tools/trunk/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
Thu Oct 8 17:24:48 2009
@@ -165,9 +165,7 @@
*/
protected void fillContext(Context ctx, HttpServletRequest request)
{
- // check if an alternate layout has been specified
- // by way of the request parameters
- String layout = request.getParameter(KEY_LAYOUT);
+ String layout = findLayout(request);
if (layout != null)
{
// let the template know what its new layout is
@@ -175,6 +173,22 @@
}
}
+ /**
+ * Searches for a non-default layout to be used for this request.
+ * This implementation checks the request parameters and attributes.
+ */
+ protected String findLayout(HttpServletRequest request)
+ {
+ // check if an alternate layout has been specified
+ // by way of the request parameters
+ String layout = request.getParameter(KEY_LAYOUT);
+ // also look in the request attributes
+ if (layout == null)
+ {
+ layout = (String)request.getAttribute(KEY_LAYOUT);
+ }
+ return layout;
+ }
/**
* Overrides VelocityViewServlet.mergeTemplate to do a two-pass