Thanks, Antonio. Unfortunately, I think I chose an example which doesn't do a very good job of illustrating what I'm actually trying to accomplish, so let me try to explain more fully.
I'm working on a Struts 2 web application which has several very similar pages, each of which contains some form fields used to capture search criteria, along with a table displaying a set of search results which match the specified criteria. Each page allows you to search for a different type of thing (cars, airplanes, boats, etc.), so the set of search criteria fields differs from one page to the next, as does the set of columns required to display the results. However, the basic layout is consistent from one page to the next, as is some of the markup for the results table (for example, odd-numbered <tr> elements are assigned a different class so they can easily be displayed with a different background color). I'd like to factor all of this common stuff (including the Struts <s:form> tags and the <tr> tags) the out into my template, so that the individual pages which use that template only have to specify the appropriate set of form fields and the corresponding set of result row columns. In effect, I'm trying to do something analogous to having an abstract search page (the template) from which other pages (my individual search pages) can inherit, overriding only the pieces which control the rendering of the form fields and the result row columns. I tried to do this by having the individual pages specify the JSP text needed to render the form fields and the row content using <tiles:putAttribute>, but it seems like that's not going to work, since the tag body is evaluated *before* the attribute is substituted into the template, not after. From reading about list attributes, I don't think that mechanism is going to do what I need, either. Is there a different approach I can use to achieve the desired results using Tiles? | -----Original Message----- | From: Antonio Petrelli [mailto:[EMAIL PROTECTED] | Sent: Wednesday, February 13, 2008 2:00 PM | To: [email protected] | Subject: Re: Question re: attribute evaluation | | I think I misunderstood your question, sorry. | I will try to answer better this time. | | 2008/2/13, Tim Kannenberg <[EMAIL PROTECTED]>: | > Because ${current} is undefined when the body content is evaluated, this | produces a table with 5 rows, each of which contains a single cell with | nothing in it. Is this an unavoidable consequence of the way Tiles works, | or is there a way to make Tiles treat the content of the putAttribute tag | as a literal string to be inserted into the template and then evaluated | along with the rest of the template page? | | It is unavoidable, since the JSP page put inside the | <tiles:putAttribute> tag body is evaluated *before* putting it as an | attribute value. | But in your particular case, why don't you use a list attribute? | http://tiles.apache.org/tutorial/advanced/list-attributes.html | | Ciao | Antonio
