[ 
https://issues.apache.org/jira/browse/WW-3296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christian Wolfgang Stone resolved WW-3296.
------------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.9

This should be fixed with the October patch I submitted to Musachy to test and 
check in.  The code seems to all be in place!

Musachy, can you make one more change to help with logging...

Index: FreemarkerDecoratorServlet.java
===================================================================
--- FreemarkerDecoratorServlet.java     (revision 923504)
+++ FreemarkerDecoratorServlet.java     (working copy)
@@ -195,7 +195,7 @@
 
             StringBuilder msgBuf = new StringBuilder("Error applying 
freemarker template to\n       request: ");
             msgBuf.append(req.getRequestURL());
-            if (req.getQueryString() == null) 
msgBuf.append("?").append(req.getQueryString());
+            if (req.getQueryString() != null) 
msgBuf.append("?").append(req.getQueryString());
             msgBuf.append(" with resultCode: 
").append(resultCode).append(".\n\n").append(x.getMessage());
             String msg = msgBuf.toString();
             LOG.error(msg, x);


There is a logic error that I made when adding the logging comment.  It is very 
very useful (well at least for me), as I know the full request URL for an error.

> Full integration with SiteMesh 2 + Freemarker 2.4.2 + Velocity 1.3 , 
> including struts tags, value stack, and FreemarkerManager statics.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-3296
>                 URL: https://issues.apache.org/jira/browse/WW-3296
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Plugin - SiteMesh
>    Affects Versions: 2.1.8
>            Reporter: Christian Wolfgang Stone
>            Assignee: Christian Wolfgang Stone
>             Fix For: 2.1.9
>
>
> Current issues include:
>     - limiting decorators to use 1 technology (Freemarker, Velocity, or JSP) 
> only.  SiteMesh should be able to use any of the three decorators as definied 
> in decorators.xml
>     - velocity struts tags and toolchain not available to velocity 
> decorators, .
>     - freemarker statics and manager configuration not available to 
> freemarker decorators.
>     - in general, the decorators use a completely different manager.
>     - problems mixing freemarker decorators with velocity/jsp results and 
> vice versa.
> This improvement/patch will use the SiteMeshFilter provided by SiteMesh and 
> implement a Freemarker and Velocity dispatcher that uses the appropriate 
> Managers in Struts 2 to create their contexts and configurations, as well as 
> share the same model when available.  If the context has not been created for 
> that technology, the Struts Manager will be asked to construct one. Since 
> many of these configurations were constructed multiple times, there should be 
> a small speed improvement as well. Once implemented, there will not be a 
> restriction on decorators.xml on which technology is being used, and the same 
> context will be available to the decorators as is available to the results.
> The new web.xml will look like this (configuration to use all three 
> technologies).
>     <filter>
>          <filter-name>struts-prepare</filter-name>
>          
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
>          <init-param>
>              <param-name>actionPackages</param-name>
>              <param-value>net.stonescape.renegade20.presentation</param-value>
>          </init-param>
>      </filter>
>      <filter>
>          <filter-name>sitemesh</filter-name>
>          
> <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
>      </filter>
>      <filter>
>          <filter-name>struts-execute</filter-name>
>          
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
>      </filter>
>      <filter-mapping>
>          <filter-name>struts-prepare</filter-name>
>          <url-pattern>/*</url-pattern>
>      </filter-mapping>
>      <filter-mapping>
>          <filter-name>sitemesh</filter-name>
>          <url-pattern>/*</url-pattern>
>          <dispatcher>REQUEST</dispatcher>
>          <dispatcher>FORWARD</dispatcher>
>          <dispatcher>INCLUDE</dispatcher>
>      </filter-mapping>
>      <filter-mapping>
>          <filter-name>struts-execute</filter-name>
>          <url-pattern>/*</url-pattern>
>      </filter-mapping>
>     <servlet>
>         <servlet-name>sitemesh-freemarker</servlet-name>
>         
> <servlet-class>org.apache.struts2.sitemesh.FreemarkerDecoratorServlet</servlet-class>
>         <init-param>
>             <param-name>default_encoding</param-name>
>             <param-value>UTF-8</param-value>
>         </init-param>
>         <load-on-startup>1</load-on-startup>
>     </servlet>
>     <servlet-mapping>
>         <servlet-name>sitemesh-freemarker</servlet-name>
>         <url-pattern>*.ftl</url-pattern>
>     </servlet-mapping>
>     <servlet>
>          <servlet-name>sitemesh-velocity</servlet-name>
>          
> <servlet-class>org.apache.struts2.sitemesh.VelocityDecoratorServlet</servlet-class>
>          <init-param>
>              <param-name>default_encoding</param-name>
>              <param-value>UTF-8</param-value>
>          </init-param>
>          <load-on-startup>1</load-on-startup>
>      </servlet>
>      <servlet-mapping>
>          <servlet-name>sitemesh-velocity</servlet-name>
>          <url-pattern>*.vm</url-pattern>
>      </servlet-mapping>
>     <servlet>
>         <servlet-name>JspSupportServlet</servlet-name>
>         
> <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
>         <load-on-startup>1</load-on-startup>
>     </servlet>
>     

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to