Author: apetrelli
Date: Wed Feb 11 13:22:13 2009
New Revision: 743332
URL: http://svn.apache.org/viewvc?rev=743332&view=rev
Log:
TILESSB-4
Fixed bugs in setCurrentContainer, PutListAttributeModel and AddAttributeModel.
Modified:
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
Modified:
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
(original)
+++
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/context/FreeMarkerUtil.java
Wed Feb 11 13:22:13 2009
@@ -81,9 +81,8 @@
public static void setCurrentContainer(Environment env, String key) {
TilesContainer container = getContainer(env, key);
if (container != null) {
- getServletContextHashModel(env).getServlet().getServletContext()
- .setAttribute(ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME,
- container);
+ getRequestHashModel(env).getRequest().setAttribute(
+ ServletUtil.CURRENT_CONTAINER_ATTRIBUTE_NAME, container);
} else {
throw new NoSuchContainerException("The container with the key '"
+ key + "' cannot be found");
Modified:
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
(original)
+++
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/template/PutListAttributeFMModel.java
Wed Feb 11 13:22:13 2009
@@ -27,7 +27,7 @@
Map<String, TemplateModel> parms = (Map<String, TemplateModel>) params;
Stack<Object> composeStack = FreeMarkerUtil.getComposeStack(env);
model.start(composeStack,
FreeMarkerUtil.getAsString(parms.get("role")),
- FreeMarkerUtil.getAsBoolean(parms.get("role"), false));
+ FreeMarkerUtil.getAsBoolean(parms.get("inherit"), false));
FreeMarkerUtil.evaluateBody(body);
model.end(FreeMarkerUtil.getCurrentContainer(env), composeStack,
FreeMarkerUtil.getAsString(parms.get("name")), FreeMarkerUtil
Modified:
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
(original)
+++
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/AddAttributeModel.java
Wed Feb 11 13:22:13 2009
@@ -19,7 +19,7 @@
Attribute attribute = (Attribute) composeStack.pop();
if(value != null) {
attribute.setValue(value);
- } else if (body != null) {
+ } else if (attribute.getValue() == null && body != null) {
attribute.setValue(body);
}
if (expression != null) {
Modified:
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java?rev=743332&r1=743331&r2=743332&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
(original)
+++
tiles/sandbox/trunk/tiles-freemarker/src/main/java/org/apache/tiles/template/PutListAttributeModel.java
Wed Feb 11 13:22:13 2009
@@ -3,6 +3,7 @@
import java.util.Stack;
import org.apache.tiles.AttributeContext;
+import org.apache.tiles.Definition;
import org.apache.tiles.ListAttribute;
import org.apache.tiles.TilesContainer;
@@ -18,8 +19,16 @@
public void end(TilesContainer container,
Stack<Object> composeStack, String name, boolean cascade,
Object... requestItems) {
ListAttribute listAttribute = (ListAttribute) composeStack.pop();
- AttributeContext attributeContext = container
- .getAttributeContext(requestItems);
+ AttributeContext attributeContext = null;
+ if (!composeStack.isEmpty()) {
+ Object obj = composeStack.peek();
+ if (obj instanceof Definition) {
+ attributeContext = (AttributeContext) obj;
+ }
+ }
+ if (attributeContext == null) {
+ attributeContext = container.getAttributeContext(requestItems);
+ }
attributeContext.putAttribute(name, listAttribute, cascade);
}
}