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) 
         { 


Reply via email to