Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-4306

After WW-3330, <@s.action> broken in non-sitemesh freemarker templates

    XMLWordPrintableJSON

Details

    Description

      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> from a Freemarker template that is not a Sitemesh decorator over-writes any previous output.

      Steps to reproduce:

      With a web app that uses the FreemarkerPageFilter instead of SiteMeshFilter, create a Freemarker template that has 3 lines:

      1. A standard line of static text
      2. An <@s.action> reference.
      3. More static text.

      Observed behavior: Text before the output of the <@s.action> call does not get to the client.
      Expected behavior: All of the output gets to the client.

      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.

      Attachments

        1. ww4306.war
          4.66 MB
          Brandon Ramirez

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bramirez Brandon Ramirez
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: