Am 10.10.2011 10:11, schrieb Antonio Petrelli:
2011/10/10 Kai<[email protected]>

In my real problem, list.jsp ist much more complex and I want to reuse it
on several pages. The only part of list.jsp which changes from page to page
is the part in dynamic.jsp, which is bind in in the definition.

Therefore I cannot "hartcode" the Template with a<t:insertAttribute>-Tag
inside the list.jsp-Template. Because then, I would have to copy list.jsp
for every page and would end up with several versions of list.jsp, which
only differ in this one<t:insertAttribute>-Tag. That would not be good,
because I would have to edit several nearly identical copies, if I want to
change list.jsp later on!


Try to explain your use case further, maybe there are better solutions (e.g.
ViewPreparer).

I am programming a picture-album.

There are severale pages, which are listing a set of pictures. For example, an import, a selected set of pictues, a picture-story, ... The markup for these picture-listings basically is the same on all these pages. Therefore, I would like to use one single template for that markup (the list.jsp in my simplified example).

But on every page-type, there are different Links for further actions beneath each listed picture. On the import-page there would be a rotate-link. On the page that lists selected pictures, there would be the links remove, move up and move down. On the picture-story-page there would be no links at all... Each set of links is a different sub-template (the dynamic.jsp in my simplified example).

Hence, I am looking for a way to embed different templates inside the base-template.

A perfect match for one base-definition, which uses list.jsp as template, and a set of special definitions, which inherit from the base definition and overwrite an attribute (the attribute dynamic in my example), to insert an inner template with the specific links.

But then, on each insertion of that inner template, the inner template has to know the actual picture of the set of pictures, the outer template is iterating over.

That would work perfectly, if I would use <t:insertAttribute> in the outer template, as you have shown in your last mail. But I cannot do that, because I would need several versions of the outer template then. One for each specialised set of links, because for each set of specialised links, another template has to be included!

Hence, I tried to pick up the variable with an EL-Expression in the definition...


But I have understand, that the EL in the XML-definition is evaluated, when
the definition is inserted. In case of the nested anonymous definition, that
would happen while the forEach-Loop is renderd.
Therefore I had concluded that the EL sees the environment of that moment
and that page.


It's true that EL is evaluated when the inserted page is rendered, but the
*value* of the attribute is in the page that includes it.

Oh.

I had expected, that the EL would behave in the same way it behaves, when it is written in the <t:insertAttribute>-Tag like in your last mail...



Greetings kai

Reply via email to