Thank you,
Mike
public class TilesTool extends org.apache.velocity.tools.struts.TilesTool {
public String get(Object obj)
{
if (obj instanceof ComponentDefinition)
{
try
{
return processDefinition((ComponentDefinition)obj);
}
catch (Exception e)
{
Velocity.error("Exception while rendering ComponentDefinition" + e.getMessage());
}
}
return super.get(obj);
}
public ComponentDefinition getDefinition(String name)
{
ComponentDefinition definition = null;
try
{
definition = TilesUtil.getDefinition(name, this.request, this.application);
}
catch (DefinitionsFactoryException dfe)
{
}
return definition;
}
}
Pedro Salgado wrote:
Below is a reply sent to this mailing list about something very similar to what you are looking for.
Hope it helps,
Pedro Salgado
Hi Robert..
I guess you could achieve the same using the controllerClass attribute and building your class.. For instance, I have this definition in the tiles-defs.xml file: --- <definition name=".layout" path="/common/layout.jsp" controllerClass='com.dars.XTileAction'> <put name="title" value="Encabezado primario"/> <put name="leftside" value="/common/leftside.jsp"/> <put name="rightside" value="/common/rightside.jsp"/> <put name="header" value="/common/header.jsp"/> <put name="footer" value="/common/footer.jsp"/> <put name="body" value="/common/body.jsp"/> </definition> --- And I have this controllerClass --- package com.dars; import org.apache.struts.tiles.actions.TilesAction; import org.apache.struts.tiles.ComponentContext; import org.apache.struts.tiles.Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletContext; import javax.servlet.ServletException; import java.io.IOException;
public class XTileAction extends TilesAction implements Controller{ public void perform(ComponentContext tilesctx, HttpServletRequest request, HttpServletResponse response, ServletContext servctx) throws ServletException, IOException{ /* GetAttributes */ String titulo= (String)tilesctx.getAttribute("title"); String derecha= (String)tilesctx.getAttribute("rightside"); /* GetAttributes */ System.out.println(" Titulo: "+titulo); System.out.println(" Derecha: "+derecha); /* SetAttributes */ tilesctx.putAttribute("title", "Titulo nuevo de esta vaina.."); tilesctx.putAttribute("rightside", "/common/footer.jsp"); /* SetAttributes */ } } --- You can change the values of those attributes at runtime. I prefer to do it using this method.
Atte. Domingo A. Rodriguez S.
--- Robert Taylor <[EMAIL PROTECTED]> escribió: > Greetings, I have a
tiles definition in my tiles-defs.xml similar to
below:
<definition name="search" extends="layout"> <put name="heading" value="{0}Search" type="string" /> <put name="content" value="/search.jsp" type="page" /> </definition>
which I would like to be able to modify the "heading" value such that at runtime I could substitute a value for {0}.
For example, it would be ideal to use a JSTL type of syntax such as:
<definition name="search" extends="layout"> <put name="heading" value="${param.myValue}Search" type="string" /> <put name="content" value="/search.jsp" type="page" /> </definition>
but this does not work.
robert
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
_________________________________________________________ Do You Yahoo!? Información de Estados Unidos y América Latina, en Yahoo! Noticias. Visítanos en http://noticias.espanol.yahoo.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
On 24/03/2004 18:14, "Mariano García González" <[EMAIL PROTECTED]> wrote:
Hi all,
I am newbie using tiles, so maybe this question is too easy for you.
I want to use a tile definition in which, one of the attribute values is dynamic. It is something like this:
<definition name="tracebox.def.encoderconfig" extends="tracebox.def.menu"> <put name="title" value="encoderconfig" /> <put name="body" value="DYNAMIC CONTENT" /> </definition>
I want to use a dynamic url in body attribute, depending of a bean attribute.
I hope you understand me. Could you help me?
Thanks, Mariano.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]