You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Brandon Ramirez (JIRA)" <ji...@apache.org> on 2014/03/24 18:18:50 UTC

[jira] [Comment Edited] (WW-4306) After WW-3330, <@s.action> broken in non-sitemesh freemarker templates

    [ https://issues.apache.org/jira/browse/WW-4306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13945375#comment-13945375 ] 

Brandon Ramirez edited comment on WW-4306 at 3/24/14 5:17 PM:
--------------------------------------------------------------

Web app package ready to drop in to a servlet container.

There are 2 action URL's you can visit:

/ww4306/usesaction.action

This is a simple <@s.action> inclusion of another action.

/ww4306/sactionwithsitemesh.action

This uses a Sitemesh decoration which uses s.action to include the same action.

The key phrase to look for which designates success is "This is the menu! If you see me, then s.action worked."

Notice only the first one (usesaction.action) displays this phrase.

This is packaged to use com.opensymphony.sitemesh.webapp.SiteMeshFilter via web.xml.  I added an alternative org.apache.struts2.sitemesh.FreemarkerPageFilter filter commented out.  Swap the filters and then only the Sitemesh page will work correctly.


was (Author: bramirez):
Web app package ready to drop in to a servlet container.

There are 2 action URL's you can visit:

/ww4306/usesaction.action

This is a simple <@s.action> inclusion of another action.

/ww4306/sactionwithsitemesh.action

This uses a Sitemesh decoration which uses s.action to include the same action.

> After WW-3330, <@s.action> broken in non-sitemesh freemarker templates
> ----------------------------------------------------------------------
>
>                 Key: WW-4306
>                 URL: https://issues.apache.org/jira/browse/WW-4306
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - SiteMesh
>    Affects Versions: 2.3.16.1
>            Reporter: Brandon Ramirez
>              Labels: freemarker, regression
>             Fix For: 2.3.x
>
>         Attachments: ww4306.war
>
>
> After upgrading from Struts 2.1.8.1 to 2.3.16.1, we observed that if a Sitemesh Freemarker decorator used <@s.action> to include another action, the action's Freemarker view output is not rendered.
> This is identical to what WW-3330 describes, which is reported fixed in 2.2.3.
> The documentation (http://struts.apache.org/release/2.3.x/docs/sitemesh-plugin.html) specifies to use com.opensymphony.sitemesh.webapp.SiteMeshFilter.  The fix in WW-3330 applies to org.apache.struts2.sitemesh.FreemarkerPageFilter, a sub-class of SiteMeshFilter.  Using SiteMeshFilter as the documentation specifies, WW-3330 does not appear resolved.
> If I change my web.xml to use FreemarkerPageFilter instead of SiteMeshFilter, the WW-3330 problem is resolved, but now <@s.action> fails to render Freemarker output when *not* included via Sitemesh decorators.
> Judging by the number of configuration changes (servlets and filters) in 2.2, it is possible that I have web.xml configured incorrectly.  If that is the case, feel free to throw your tomatoes :)  But I have triple checked and at this point I am wondering if this is a regression from WW-3330.
> If needed, I can try to put together a minimal web app to reproduce the problem.



--
This message was sent by Atlassian JIRA
(v6.2#6252)