Revision: 1237
          http://stripes.svn.sourceforge.net/stripes/?rev=1237&view=rev
Author:   bengunter
Date:     2010-05-19 18:53:03 +0000 (Wed, 19 May 2010)

Log Message:
-----------
Throw a descriptive exception if a definition tag is executing outside of a 
render tag.

Modified Paths:
--------------
    
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutDefinitionTag.java

Modified: 
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutDefinitionTag.java
===================================================================
--- 
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutDefinitionTag.java
      2010-05-18 18:57:31 UTC (rev 1236)
+++ 
branches/1.5.x/stripes/src/net/sourceforge/stripes/tag/layout/LayoutDefinitionTag.java
      2010-05-19 18:53:03 UTC (rev 1237)
@@ -15,6 +15,7 @@
 package net.sourceforge.stripes.tag.layout;
 
 import net.sourceforge.stripes.controller.StripesConstants;
+import net.sourceforge.stripes.exception.StripesJspException;
 import net.sourceforge.stripes.tag.StripesTagSupport;
 import net.sourceforge.stripes.util.Log;
 
@@ -52,10 +53,21 @@
         return layoutName;
     }
 
-    /** Get the current layout context. */
-    public LayoutContext getLayoutContext() {
+    /**
+     * Get the current layout context.
+     * 
+     * @throws StripesJspException If there is no {...@link LayoutContext} for 
this layout in the
+     *             current {...@link PageContext}.
+     */
+    public LayoutContext getLayoutContext() throws StripesJspException {
         if (context == null) {
             context = LayoutContext.find(getPageContext(), getLayoutName());
+            if (context == null) {
+                throw new StripesJspException("The JSP page " + getLayoutName()
+                        + " contains a layout-definition tag and was invoked 
directly. "
+                        + "A layout-definition can only be invoked by a page 
that contains "
+                        + "a layout-render tag.");
+            }
         }
 
         return context;


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------

_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to