thanks for your answer. I am probably a bit slow here, because I can't really 
figure out how to do it... ;-) 

in my file layoutSearch.jsp, I have the following:
<tiles:definition id="message" page="/protected/pages/reportBody.jsp">    
  <logic:equal property="searchPlus30" name="searchForm" value="true">
    <tiles:put name="???" type="string"/>
  </logic:equal>
</tiles:definition>

<tiles:insert beanName="message" flush="true"/>

<tiles:insert page="/protected/pages/reportBody.jsp" flush="true">
  <tiles:put name="showPlus30">
    <tiles:insert name="message"/>
  </tiles:put>  
</tiles:insert>

and then in my reportBody.jsp, I have the following:

<tiles:insert name="showPlus30">
  <tiles:put name="message">
    <bean:message key="viewInitialReport.temp.plus30"/>
  </tiles:put>
</tiles:insert>

I don't see what name my placeholder-<put> should have in my definition, and 
how to use it? And the page for my definition?

Running this, I get the following exception:
2006-01-26 11:58:50,649 ERROR [ResourceFilter] Exception in resource 
filter.javax.servlet.ServletException: ServletException in 
'/unprotected/layouts/layout.jsp': ServletException in 
'/unprotected/layouts/layoutSearch.jsp': ServletException in 
'/protected/pages/reportBody.jsp': Can't insert page 'showPlus30' : Illegal to 
flush within a custom tag

any idea is highly appreciated.

cheers,
pj

-----Opprinnelig melding-----
Fra: news [mailto:[EMAIL PROTECTED] På vegne av Laurie Harper
Sendt: 25. januar 2006 20:36
Til: user@struts.apache.org
Emne: Re: Tiles: how to put a tag without a closing tag?

Per Jørgen Walstrøm wrote:
> hello,
> I am trying to do a tiles:put on a tag without an ending-tag. Like this 
> (layoutSearch.jsp):
> 
> <tiles:put name="showPlus30Start" direct="true">
>   <logic:equal property="searchPlus30" name="searchForm" value="true">
> </tiles:put>
> 
> <tiles:put name="showTempEndTag" direct="true">
>    </logic:equal>
> </tiles:put>
> 
> these attributes are supposed to be used in a jsp like this:
> 
> <tiles:insert attribute="showPlus30Start" ignore="true"/>
>    <bean:message key="temperature.plus30"/>
> <tiles:insert attribute="showTempEndTag" ignore="true"/>
> 
> The exception I get, looks like this:
> 2006-01-25 13:48:19,568 ERROR [ResourceFilter] Exception in resource filter.
> javax.servlet.ServletException: ServletException in 
> '/unprotected/layouts/layout.jsp': ServletException in 
> '/unprotected/layouts/layoutSearch.jsp': 
> /unprotected/layouts/layoutSearch.jsp(15,4) The end tag "&lt;/tiles:put" is 
> unbalanced
> 
> This does apparently not work, as the <logic:equal> is not correctly ended in 
> my <tiles:put>... 
> is there a way to tell struts/tiles to get this to work?

No, not like that; as you've discovered, tags must be properly nested. 
The right way to do this is to define a tile with both the logic:equal 
start tag and end tag, wrapped around a placeholder. Something like 
(very roughly)

<tiles:put name="showPlus30">
   <tiles:insert name="message"/>
</tiles:put>
...
<tiles:insert name="showPlus30">
   <tiles:put name="message">
     <bean:message .../>
   </tiles:put>
</tiles:insert>

I don't use the Tiles taglib (I do everything through tiles-defs.xml) so 
that markup is probably way off, but hopefully you get the idea...

L.


---------------------------------------------------------------------
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]

Reply via email to