Jorge Vasquez wrote:
Antonio Petrelli wrote:
2010/6/8 Jorge Vasquez <[email protected]>:
Antonio Petrelli wrote:
The main problem is that the tiles.insertAttribute tags are not being
replaced by whatever I try to set using the tiles.putAttribute tags.

This is why I am getting in the browser:
....
               <@s.head/>
               <!-- TITLE -->
               <@tiles.insertAttribute name="title"/>

I see that not only Tiles tags are not evaluated, but also Struts ones
have problems.
It seems that your templates are passing unmodified. Are you sure you
are using FreemarkerServlet correctly?
If yes, I suppose that you need to contact the Freemarker team.

Antonio
Everything works fine in this project if I use the normal approach of the tiles.xml file with all the definitions, but I am trying to use a more basic approach involving just ftl pages, no tiles xml file.

I just upgraded all of my tiles jars to 2.2.1.

I am using Tiles and Struts2.
These are the jars from tiles that I included into the WEB-INF/lib: tiles-api-2.2.1.jar, tiles-core-2.2.1.jar, tiles-freemarker-2.2.1.jar, tiles-servlet-2.2.1.jar, tiles-template-2.2.1.jar.

This is the portion of my web.xml file that is relevant to the tiles configuration:

   <listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
   </listener>

In my struts.xml file I have:

       <result-types>
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult" default="true"/> <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
       </result-types>

Now, since I upgraded to 2.2.1 I am getting the following error:

<pre> Expression tiles is undefined on line 1, column 3 in WEB-INF/ftl/tiles/login/login.ftl. The problematic instruction: ---------- ==&gt; user-directive tiles.insertTemplate [on line 1, column 1 in WEB-INF/ftl/tiles/login/login.ftl] </pre> <pre>freemarker.core.InvalidReferenceException: Expression tiles is undefined on line 1, column 3 in WEB-INF/ftl/tiles/login/login.ftl. </pre>
.....


This is my login.ftl code:

<@tiles.insertTemplate template="/WEB-INF/ftl/layouts/blank_layout.ftl">

 <@tiles.putAttribute name="title"  value="eDate Admin Login" />
<@tiles.putAttribute name="body_background" value="images/background_paper.jpg" /> <@tiles.putAttribute name="logo" value="images/mate1_logo_default.jpg" /> <@tiles.putAttribute name="footer" value="/WEB-INF/ftl/tiles/footer.ftl" />
 <@tiles.putAttribute name="body" >

<h2>eDate Admin Login:</h2>
<@s.form action="login">
   <@s.textfield label="Email" name="email"/>
   <@s.password label="Password" name="password"/>
   <@s.submit/>
</@s.form>

</@tiles.putAttribute>

</@tiles.insertTemplate>

This is the mapping in my struts.xml file:

<action name="login_*" method="{1}" class="com.edate.web.admin.actions.login.LoginAction">
           <interceptor-ref name="eDateAdminBaseStack"/>
           <result name="success" type="redirectAction">mainmenu</result>
           <result name="error" type="tiles">error_page</result>
<result name="input" type="freemarker">/WEB-INF/ftl/tiles/login/login.ftl</result>
       </action>


What am I missing?, why isn't it recognizing the tiles tags? Any references on integrating Struts2 + Tiles2 + FreeMarker?

Thanks again,
Jorge Vasquez
I guess my main question is whether or not it is possible to use a combination of Struts+Tiles+FreeMarker without using tiles definitions, no tiles.xml file at all. Has anyone accomplished this? Is it even possible?

Thanks again,
Jorge Vasquez

Reply via email to