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

Christian Wolfgang Stone commented on WW-3296:
----------------------------------------------

Please note, the web.xml needs to be modified.  The old filters are still 
supported, so to take advantage of the new functionality, you should do the 
following:

    <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</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>JspSupportServlet</servlet-name>
        
<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <listener>
        
<listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class>
    </listener>


Best of luck.  I have been testing this for months, and it is a real benison!


> 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