Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
2.3.16.1
-
None
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
Attachments
Issue Links
- is related to
-
WW-4356 Implement new Sitemesh plugin based on Sitemesh3
- In Progress