-
Type:
Bug
-
Status: Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.3.16.1
-
Fix Version/s: 2.5.x
-
Component/s: Plugin - SiteMesh
-
Labels:
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.
- is related to
-
WW-4356 Implement new Sitemesh plugin based on Sitemesh3
-
- Open
-