You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tiles.apache.org by ap...@apache.org on 2007/02/13 15:24:14 UTC
svn commit: r507017 - in /tiles/examples/trunk/tiles-showcase/src/main:
java/org/apache/tiles/showcase/ java/org/apache/tiles/showcase/channel/
java/org/apache/tiles/showcase/factory/
java/org/apache/tiles/showcase/impl/ java/org/apache/tiles/showcase/...
Author: apetrelli
Date: Tue Feb 13 06:24:12 2007
New Revision: 507017
URL: http://svn.apache.org/viewvc?view=rev&rev=507017
Log:
TILESSHOW-8
Attempt to use the "exposer" container.
Added:
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/ExposerTilesContainer.java (with props)
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/factory/
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/factory/ExposerKeyedTilesContainerFactory.java
- copied, changed from r506533, tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/channel/ExposerKeyedTilesContainerFactory.java
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/ExposerKeyedTilesContainer.java (with props)
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/ContainerUtil.java (with props)
Removed:
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/channel/ExposerKeyedTilesContainerFactory.java
Modified:
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/mgmt/ExposerMutableKeyedTilesContainer.java
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/portal/UserMenuAction.java
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/DefinitionCatalog.java
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/LayoutSwitchAction.java
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/SimpleSwitchLayoutAction.java
tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/test/TestActionTileAction.java
tiles/examples/trunk/tiles-showcase/src/main/webapp/WEB-INF/struts-config.xml
Added: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/ExposerTilesContainer.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/ExposerTilesContainer.java?view=auto&rev=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/ExposerTilesContainer.java (added)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/ExposerTilesContainer.java Tue Feb 13 06:24:12 2007
@@ -0,0 +1,36 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.tiles.showcase;
+
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.definition.ComponentDefinition;
+import org.apache.tiles.definition.DefinitionsFactoryException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public interface ExposerTilesContainer extends TilesContainer {
+ public ComponentDefinition getDefinition(String definitionName,
+ TilesRequestContext request) throws DefinitionsFactoryException;
+
+}
Propchange: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/ExposerTilesContainer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/ExposerTilesContainer.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Copied: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/factory/ExposerKeyedTilesContainerFactory.java (from r506533, tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/channel/ExposerKeyedTilesContainerFactory.java)
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/factory/ExposerKeyedTilesContainerFactory.java?view=diff&rev=507017&p1=tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/channel/ExposerKeyedTilesContainerFactory.java&r1=506533&p2=tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/factory/ExposerKeyedTilesContainerFactory.java&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/channel/ExposerKeyedTilesContainerFactory.java (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/factory/ExposerKeyedTilesContainerFactory.java Tue Feb 13 06:24:12 2007
@@ -19,11 +19,13 @@
* under the License.
*
*/
-package org.apache.tiles.showcase.channel;
+package org.apache.tiles.showcase.factory;
+import org.apache.tiles.TilesContainer;
import org.apache.tiles.TilesException;
import org.apache.tiles.factory.KeyedDefinitionsFactoryTilesContainerFactory;
import org.apache.tiles.mgmt.MutableTilesContainer;
+import org.apache.tiles.showcase.impl.ExposerKeyedTilesContainer;
import org.apache.tiles.showcase.impl.mgmt.ExposerMutableKeyedTilesContainer;
/**
@@ -31,6 +33,14 @@
*/
public class ExposerKeyedTilesContainerFactory extends
KeyedDefinitionsFactoryTilesContainerFactory {
+
+ @Override
+ public TilesContainer createTilesContainer(Object context) throws TilesException {
+ ExposerKeyedTilesContainer container =
+ new ExposerKeyedTilesContainer();
+ initializeContainer(context, container);
+ return container;
+ }
@Override
public MutableTilesContainer createMutableTilesContainer(Object context) throws TilesException {
Added: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/ExposerKeyedTilesContainer.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/ExposerKeyedTilesContainer.java?view=auto&rev=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/ExposerKeyedTilesContainer.java (added)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/ExposerKeyedTilesContainer.java Tue Feb 13 06:24:12 2007
@@ -0,0 +1,41 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.tiles.showcase.impl;
+
+import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.definition.ComponentDefinition;
+import org.apache.tiles.definition.DefinitionsFactoryException;
+import org.apache.tiles.impl.KeyedDefinitionsFactoryTilesContainer;
+import org.apache.tiles.showcase.ExposerTilesContainer;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ExposerKeyedTilesContainer extends
+ KeyedDefinitionsFactoryTilesContainer implements ExposerTilesContainer {
+
+ @Override
+ public ComponentDefinition getDefinition(String definitionName,
+ TilesRequestContext request) throws DefinitionsFactoryException {
+ return super.getDefinition(definitionName, request);
+ }
+}
Propchange: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/ExposerKeyedTilesContainer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/ExposerKeyedTilesContainer.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/mgmt/ExposerMutableKeyedTilesContainer.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/mgmt/ExposerMutableKeyedTilesContainer.java?view=diff&rev=507017&r1=507016&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/mgmt/ExposerMutableKeyedTilesContainer.java (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/impl/mgmt/ExposerMutableKeyedTilesContainer.java Tue Feb 13 06:24:12 2007
@@ -25,12 +25,13 @@
import org.apache.tiles.definition.ComponentDefinition;
import org.apache.tiles.definition.DefinitionsFactoryException;
import org.apache.tiles.impl.mgmt.CachingKeyedDefinitionsFactoryTilesContainer;
+import org.apache.tiles.showcase.ExposerTilesContainer;
/**
* @version $Rev$ $Date$
*/
public class ExposerMutableKeyedTilesContainer extends
- CachingKeyedDefinitionsFactoryTilesContainer {
+ CachingKeyedDefinitionsFactoryTilesContainer implements ExposerTilesContainer {
@Override
public ComponentDefinition getDefinition(String definition,
Modified: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/portal/UserMenuAction.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/portal/UserMenuAction.java?view=diff&rev=507017&r1=507016&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/portal/UserMenuAction.java (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/portal/UserMenuAction.java Tue Feb 13 06:24:12 2007
@@ -24,6 +24,7 @@
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
@@ -40,11 +41,18 @@
import org.apache.tiles.ComponentAttribute;
import org.apache.tiles.ComponentContext;
import org.apache.tiles.TilesApplicationContext;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.beans.MenuItem;
import org.apache.tiles.context.ComponentListAttribute;
import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.context.servlet.ServletTilesApplicationContext;
import org.apache.tiles.context.servlet.ServletTilesRequestContext;
+import org.apache.tiles.definition.ComponentDefinition;
import org.apache.tiles.preparer.ViewPreparer;
+import org.apache.tiles.showcase.ExposerTilesContainer;
import org.apache.tiles.showcase.channel.AttributeUtils;
+import org.apache.tiles.showcase.util.ContainerUtil;
/**
* This controller load user menu settings and put them in tile context.
@@ -245,12 +253,12 @@
}
// Get catalog from context
- List catalog = (List) applicationContext.getApplicationScope()
+ List<Object> catalog = (List) applicationContext.getApplicationScope()
.get(catalogName);
// If not found, initialize it from provided default menu
if (catalog == null) {
- Object menuBar = context.getAttribute(CATALOG_SETTING_ATTRIBUTE);
+ ComponentAttribute menuBar = context.getAttribute(CATALOG_SETTING_ATTRIBUTE);
if (menuBar == null) {
throw new ServletException(
"Attribute '"
@@ -258,12 +266,17 @@
+ "' must be set. It define entries used in catalog");
}
- catalog = new ArrayList();
- extractItems(catalog, menuBar, context, tilesContext,
- applicationContext);
- if (catalog.size() == 0) {
- throw new ServletException("Can't initialize menu items catalog");
- }
+ catalog = new ArrayList<Object>();
+ TilesContainer container = ContainerUtil.getContainer(applicationContext);
+ if (container instanceof ExposerTilesContainer) {
+ extractItems(catalog, menuBar.getValue(), context,
+ (ExposerTilesContainer) container, tilesContext);
+ if (catalog.size() == 0) {
+ throw new ServletException("Can't initialize menu items catalog");
+ }
+ } else {
+ throw new ServletException("The container must be instance of ExposerTilesContainer");
+ }
// save it for future use
applicationContext.getApplicationScope().put(catalogName, catalog);
@@ -286,25 +299,24 @@
* </li>
* @param result result list (should be initialized)
* @param object object to add (MenuItems, Definition, ...)
+ * @param container TODO
* @param request current request
* @param servletContext current servlet context.
*/
private static void extractItems(
- List result,
+ List<Object> result,
Object object,
ComponentContext context,
- TilesRequestContext tilesContext,
- TilesApplicationContext applicationContext) {
+ ExposerTilesContainer container,
+ TilesRequestContext tilesContext) {
log.debug("Extract menu item from '" + object + "'");
- // FIXME This method should be completely rewritten. For the moment
- // I am commenting it.
-/*
if (object instanceof String) { // definition name
try {
-
- extractItems(result, def, request, servletContext);
+ ComponentDefinition def = container.getDefinition(
+ (String) object, tilesContext);
+ extractItems(result, def, context, container, tilesContext);
} catch (Exception ex) { // silently fail
}
@@ -313,7 +325,7 @@
List list = (List) object;
Iterator iter = list.iterator();
while (iter.hasNext()) {
- extractItems(result, iter.next(), request, servletContext);
+ extractItems(result, iter.next(), context, container, tilesContext);
}
} else if (object instanceof ComponentDefinition) {
@@ -327,11 +339,11 @@
return;
}
- extractItems(result, attribute, request, servletContext);
+ extractItems(result, attribute, context, container, tilesContext);
} else if (object instanceof MenuItem) {
result.add(object);
- } */
+ }
}
/**
Modified: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/DefinitionCatalog.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/DefinitionCatalog.java?view=diff&rev=507017&r1=507016&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/DefinitionCatalog.java (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/DefinitionCatalog.java Tue Feb 13 06:24:12 2007
@@ -30,11 +30,19 @@
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.tiles.TilesApplicationContext;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.context.servlet.ServletTilesRequestContext;
import org.apache.tiles.definition.ComponentDefinition;
import org.apache.tiles.definition.DefinitionsFactoryException;
import org.apache.tiles.definition.FactoryNotFoundException;
import org.apache.tiles.definition.NoSuchDefinitionException;
+import org.apache.tiles.impl.BasicTilesContainer;
+import org.apache.tiles.showcase.ExposerTilesContainer;
/**
* A catalog of available definitions.
@@ -72,17 +80,26 @@
/**
* Constructor.
* Initialize catalog from definitions factory.
- * @param HttpRequest request
- * @param ServletContext context
+ * @param response TODO
+ * @param HttpRequest request
+ * @param ServletContext context
* @throws FactoryNotFoundException, DefinitionsFactoryException
*/
- public DefinitionCatalog( String catalogName, HttpServletRequest request, ServletContext context)
+ public DefinitionCatalog( String catalogName, HttpServletRequest request, HttpServletResponse response, ServletContext context)
throws FactoryNotFoundException, DefinitionsFactoryException
{
+ ExposerTilesContainer container = (ExposerTilesContainer) TilesAccess.getContainer(context);
+ TilesApplicationContext applicationContext = TilesAccess.getApplicationContext(context);
+ TilesRequestContext tilesContext;
+ if (container instanceof BasicTilesContainer) {
+ tilesContext = ((BasicTilesContainer) container)
+ .getContextFactory().createRequestContext(
+ applicationContext, request, response);
+ } else {
+ tilesContext = new ServletTilesRequestContext(context, request, response);
+ }
// Get definition containing list of definitions
- // FIXME Currently I don't know how to get a definition.
- ComponentDefinition catalogDef = null;
-// ComponentDefinition catalogDef = DefinitionsUtil.getDefinition( catalogName, request, context);
+ ComponentDefinition catalogDef = container.getDefinition(catalogName, tilesContext);
if(debug)
System.out.println( "Got definition " + catalogDef );
// Get list of definition names
@@ -92,9 +109,7 @@
{
String name = (String)i.next();
System.out.println( "add " + name );
- ComponentDefinition def = null;
- // FIXME Currently I don't know how to get a definition.
-// ComponentDefinition def = DefinitionsUtil.getDefinition(name, request, context);
+ ComponentDefinition def = container.getDefinition(name, tilesContext);
if(def==null)
throw new NoSuchDefinitionException("Can't find definition '" + name + "'" );
add( name, def );
Modified: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/LayoutSwitchAction.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/LayoutSwitchAction.java?view=diff&rev=507017&r1=507016&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/LayoutSwitchAction.java (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/LayoutSwitchAction.java Tue Feb 13 06:24:12 2007
@@ -220,7 +220,7 @@
throw new ServletException( "Error - CustomSkinAction : attribute '"
+ CATALOG_SETTING_ATTRIBUTE
+ "' not found in Tile's attributes. Need it to initialize catalog" );
- catalog = new DefinitionCatalog( catalogSettings, request, servletContext );
+ catalog = new DefinitionCatalog( catalogSettings, request, response, servletContext );
if(debug)
System.out.println( "Catalog created" );
servletContext.setAttribute( catalogName, catalog );
Modified: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/SimpleSwitchLayoutAction.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/SimpleSwitchLayoutAction.java?view=diff&rev=507017&r1=507016&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/SimpleSwitchLayoutAction.java (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/skin/SimpleSwitchLayoutAction.java Tue Feb 13 06:24:12 2007
@@ -182,7 +182,7 @@
throw new ServletException( "Error - CustomSkinAction : attribute '"
+ CATALOG_SETTING_ATTRIBUTE
+ "' not found in Tile's attributes. Need it to initialize catalog" );
- catalog = new DefinitionCatalog( catalogSettings, request, servletContext );
+ catalog = new DefinitionCatalog( catalogSettings, request, response, servletContext );
if(debug)
System.out.println( "Catalog created" );
servletContext.setAttribute( catalogName, catalog );
Modified: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/test/TestActionTileAction.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/test/TestActionTileAction.java?view=diff&rev=507017&r1=507016&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/test/TestActionTileAction.java (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/test/TestActionTileAction.java Tue Feb 13 06:24:12 2007
@@ -22,15 +22,25 @@
package org.apache.tiles.showcase.test;
+import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.tiles.ComponentContext;
+import org.apache.tiles.TilesApplicationContext;
import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.context.TilesRequestContext;
+import org.apache.tiles.context.servlet.ServletTilesRequestContext;
+import org.apache.tiles.definition.ComponentDefinition;
+import org.apache.tiles.definition.DefinitionsFactoryException;
+import org.apache.tiles.impl.BasicTilesContainer;
+import org.apache.tiles.showcase.ExposerTilesContainer;
import org.apache.tiles.showcase.channel.AttributeUtils;
@@ -42,6 +52,8 @@
*/
public final class TestActionTileAction extends Action {
+
+ private static Log LOG = LogFactory.getLog(TestActionTileAction.class);
// --------------------------------------------------------- Public Methods
@@ -69,9 +81,11 @@
HttpServletResponse response)
throws Exception {
+ ActionForward retValue = null;
+
// Try to retrieve tile context
ComponentContext context = TilesAccess.getContainer(request.getSession()
- .getServletContext()).getComponentContext(request, response);;
+ .getServletContext()).getComponentContext(request, response);
// Get requested test from tile parameter
String param;
@@ -80,30 +94,33 @@
context.getAttribute("set-definition-name"));
if( param != null )
{
- // FIXME Currently I don't know how to get a definition!
-// try
-// {
+ ServletContext servletContext = request.getSession().getServletContext();
+ ExposerTilesContainer container = (ExposerTilesContainer) TilesAccess.getContainer(
+ servletContext);
+ TilesApplicationContext applicationContext = TilesAccess.getApplicationContext(
+ servletContext);
+ TilesRequestContext tilesContext;
+ if (container instanceof BasicTilesContainer) {
+ tilesContext = ((BasicTilesContainer) container)
+ .getContextFactory().createRequestContext(
+ applicationContext, request, response);
+ } else {
+ tilesContext = new ServletTilesRequestContext(servletContext, request, response);
+ }
+ try
+ {
// Read definition from factory, but we can create it here.
-// ComponentDefinition definition = DefinitionsUtil.getDefinition( param, request, getServlet().getServletContext() );
-// //definition.putAttribute( "attributeName", "aValue" );
-// DefinitionsUtil.setActionDefinition( request, definition);
+ ComponentDefinition definition = container.getDefinition(
+ param, tilesContext);
+ retValue = new ActionForward(definition.getTemplate());
+ }
+ catch( DefinitionsFactoryException ex )
+ {
+ LOG.error("General error during getting a definition", ex);
+ request.setAttribute( "actionError", "General error '" + ex.getMessage() +"'.");
+ return (mapping.findForward("failure"));
}
-// catch( FactoryNotFoundException ex )
-// {
-// request.setAttribute( "actionError", "Can't get definition factory.");
-// return (mapping.findForward("failure"));
-// }
-// catch( NoSuchDefinitionException ex )
-// {
-// request.setAttribute( "actionError", "Can't get definition '" + param +"'.");
-// return (mapping.findForward("failure"));
-// }
-// catch( DefinitionsFactoryException ex )
-// {
-// request.setAttribute( "actionError", "General error '" + ex.getMessage() +"'.");
-// return (mapping.findForward("failure"));
-// }
-// }
+ }
// Overload a parameter
param = AttributeUtils.getAttributeValueAsString(
@@ -113,7 +130,11 @@
context.putAttribute( param, context.getAttribute( "set-attribute-value" ));
} // end if
- return (mapping.findForward("success"));
+ if (retValue == null) {
+ retValue = mapping.findForward("success");
+ }
+
+ return retValue;
}
Added: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/ContainerUtil.java
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/ContainerUtil.java?view=auto&rev=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/ContainerUtil.java (added)
+++ tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/ContainerUtil.java Tue Feb 13 06:24:12 2007
@@ -0,0 +1,48 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.tiles.showcase.util;
+
+import org.apache.tiles.TilesApplicationContext;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.context.servlet.ServletTilesApplicationContext;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ContainerUtil {
+
+ private ContainerUtil() {
+ }
+
+ public static TilesContainer getContainer(TilesApplicationContext context) {
+ TilesContainer retValue = null;
+
+ if (context instanceof ServletTilesApplicationContext) {
+ retValue = TilesAccess
+ .getContainer(((ServletTilesApplicationContext) context)
+ .getServletContext());
+ }
+
+ return retValue;
+ }
+}
Propchange: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/ContainerUtil.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tiles/examples/trunk/tiles-showcase/src/main/java/org/apache/tiles/showcase/util/ContainerUtil.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: tiles/examples/trunk/tiles-showcase/src/main/webapp/WEB-INF/struts-config.xml
URL: http://svn.apache.org/viewvc/tiles/examples/trunk/tiles-showcase/src/main/webapp/WEB-INF/struts-config.xml?view=diff&rev=507017&r1=507016&r2=507017
==============================================================================
--- tiles/examples/trunk/tiles-showcase/src/main/webapp/WEB-INF/struts-config.xml (original)
+++ tiles/examples/trunk/tiles-showcase/src/main/webapp/WEB-INF/struts-config.xml Tue Feb 13 06:24:12 2007
@@ -75,6 +75,10 @@
value="/WEB-INF/tiles-defs.xml" />
<!-- Set Module-awareness to true -->
<set-property property="moduleAware" value="true" />
+ <set-property property="org.apache.tiles.CONTAINER_FACTORY"
+ value="org.apache.tiles.showcase.factory.ExposerKeyedTilesContainerFactory" />
+ <set-property property="org.apache.tiles.CONTAINER_FACTORY.mutable"
+ value="true" />
</plug-in>
</struts-config>