struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christian Wolfgang Stone (JIRA)" <j...@apache.org>
Subject [jira] Commented: (WW-3296) Full integration with SiteMesh 2 + Freemarker 2.4.2 + Velocity 1.3 , including struts tags, value stack, and FreemarkerManager statics.
Date Mon, 15 Mar 2010 23:36:27 GMT

    [ 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.


Mime
View raw message