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