Author: cbrisson
Date: Mon Jun 25 21:59:25 2018
New Revision: 1834380
URL: http://svn.apache.org/viewvc?rev=1834380&view=rev
Log:
[tools/view] New tools.view.servlet.layout.dynamic boolean property (defaults
to false)
Modified:
velocity/tools/trunk/velocity-tools-examples/velocity-tools-examples-showcase/src/main/webapp/WEB-INF/velocity.properties
velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
Modified:
velocity/tools/trunk/velocity-tools-examples/velocity-tools-examples-showcase/src/main/webapp/WEB-INF/velocity.properties
URL:
http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-examples/velocity-tools-examples-showcase/src/main/webapp/WEB-INF/velocity.properties?rev=1834380&r1=1834379&r2=1834380&view=diff
==============================================================================
---
velocity/tools/trunk/velocity-tools-examples/velocity-tools-examples-showcase/src/main/webapp/WEB-INF/velocity.properties
(original)
+++
velocity/tools/trunk/velocity-tools-examples/velocity-tools-examples-showcase/src/main/webapp/WEB-INF/velocity.properties
Mon Jun 25 21:59:25 2018
@@ -31,3 +31,6 @@ tools.view.servlet.layout.directory = la
# relative to the layout directory
# NOT relative to the root directory of the webapp!
tools.view.servlet.layout.default.template = Default.vm
+
+# Allow dynamic layout changes by 'layout=' query string parameter
+tools.view.servlet.layout.dynamic = true
Modified:
velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
URL:
http://svn.apache.org/viewvc/velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java?rev=1834380&r1=1834379&r2=1834380&view=diff
==============================================================================
---
velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
(original)
+++
velocity/tools/trunk/velocity-tools-view/src/main/java/org/apache/velocity/tools/view/VelocityLayoutServlet.java
Mon Jun 25 21:59:25 2018
@@ -116,10 +116,17 @@ public class VelocityLayoutServlet exten
*/
public static final String KEY_ERROR_INVOCATION_EXCEPTION =
"invocation_exception";
+ /**
+ * The velocity.properties key for specifying
+ * whether dynamic layout change is allowed
+ */
+ public static final String PROPERTY_DYNAMIC_LAYOUT =
+ "tools.view.servlet.layout.dynamic";
protected String errorTemplate;
protected String layoutDir;
protected String defaultLayout;
+ protected boolean allowDynamicLayout;
/**
* Initializes Velocity, the view servlet and checks for changes to
@@ -153,6 +160,9 @@ public class VelocityLayoutServlet exten
// for efficiency's sake, make defaultLayout a full path now
defaultLayout = layoutDir + defaultLayout;
+
+ // initialize dynamic layout availability
+ allowDynamicLayout =
"true".equalsIgnoreCase(getVelocityProperty(PROPERTY_DYNAMIC_LAYOUT, "false"));
}
@@ -181,7 +191,7 @@ public class VelocityLayoutServlet exten
{
// check if an alternate layout has been specified
// by way of the request parameters
- String layout = request.getParameter(KEY_LAYOUT);
+ String layout = allowDynamicLayout ? request.getParameter(KEY_LAYOUT)
: null;
// also look in the request attributes
if (layout == null)
{