The new ones are:
<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
<filter-name>struts-execute</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
look at the showcase web.xml for examples. I am not saying it will fix
your problem, but you should start using those in 2.1.6+
musachy
On Fri, Jan 30, 2009 at 5:49 AM, Markus Doring <[email protected]> wrote:
>
> Not sure what the new ones are, but my Maven dependency uses version 2.1.6 of
> the struts2 sitemesh plugin:
> <code>
> <dependency>
> <groupId>org.apache.struts</groupId>
> <artifactId>struts2-sitemesh-plugin</artifactId>
> <version>${struts.version}</version>
> </dependency>
> ...
> <struts.version>2.1.6</struts.version>
> </code>
>
> Is there any other filter I can try?
> Markus
>
>
> Musachy Barroso wrote:
>>
>> Did you try with the new filters?
>>
>> musachy
>>
>> On Thu, Jan 29, 2009 at 7:44 PM, Markus Doring <[email protected]> wrote:
>>>
>>> Hi,
>>> I am trying Struts 2.1.6 with Freemarker Sitemesh decorators. I am
>>> getting a
>>> NPE in the PageFilter HeadTag class. When debugging it seems the
>>> getPage()
>>> call in the class returns Null. This only happens for the decorator:head
>>> and
>>> not for the body or title (If I remove the <@decorator.head/> from my
>>> decorator it works fine). The error is:
>>>
>>> <code>
>>> java.lang.NullPointerException
>>> at
>>> com.opensymphony.module.sitemesh.taglib.decorator.HeadTag.doEndTag(HeadTag.java:33)
>>> at
>>> freemarker.ext.jsp.TagTransformModel$TagWriter.endEvaluation(TagTransformModel.java:431)
>>> at
>>> freemarker.ext.jsp.TagTransformModel$TagWriter.onStart(TagTransformModel.java:370)
>>> at freemarker.core.Environment.visit(Environment.java:295)
>>> at freemarker.core.UnifiedCall.accept(UnifiedCall.java:130)
>>> at freemarker.core.Environment.visit(Environment.java:209)
>>> at freemarker.core.MixedContent.accept(MixedContent.java:92)
>>> at freemarker.core.Environment.visit(Environment.java:209)
>>> at freemarker.core.Environment.process(Environment.java:189)
>>> at freemarker.template.Template.process(Template.java:237)
>>> at
>>> org.apache.struts2.sitemesh.FreeMarkerPageFilter.applyDecorator(FreeMarkerPageFilter.java:160)
>>> at
>>> org.apache.struts2.sitemesh.TemplatePageFilter.applyDecorator(TemplatePageFilter.java:116)
>>> at
>>> com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:62)
>>> </code>
>>>
>>>
>>> I have tried to use the standard SiteMeshFilter instead of the
>>> FreeMarkerPageFilter and then I dont encounter any problem. But of course
>>> I
>>> can't access the struts value stack anymore, so I need to get the
>>> FreemarkerPageFilter working. Has anyone been successful in this
>>> combination?
>>>
>>> The relevant part of my web.xml looks like this:
>>> <code>
>>> <display-name>struts2test</display-name>
>>> <filter>
>>> <filter-name>struts-cleanup</filter-name>
>>>
>>> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
>>> </filter>
>>> <filter>
>>> <filter-name>sitemesh</filter-name>
>>>
>>> <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
>>> <!--
>>>
>>> <filter-class>org.apache.struts2.sitemesh.FreeMarkerPageFilter</filter-class>
>>> -->
>>> </filter>
>>> <filter>
>>> <filter-name>struts</filter-name>
>>>
>>> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
>>> <init-param>
>>> <param-name>actionPackages</param-name>
>>> <param-value>com.specieslog.action</param-value>
>>> </init-param>
>>> </filter>
>>>
>>> <filter-mapping>
>>> <filter-name>struts-cleanup</filter-name>
>>> <url-pattern>/*</url-pattern>
>>> <dispatcher>REQUEST</dispatcher>
>>> <dispatcher>FORWARD</dispatcher>
>>> </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</filter-name>
>>> <url-pattern>/*</url-pattern>
>>> <dispatcher>REQUEST</dispatcher>
>>> <dispatcher>FORWARD</dispatcher>
>>> </filter-mapping>
>>>
>>>
>>> <!-- Servlets -->
>>> <servlet>
>>> <servlet-name>jspSupportServlet</servlet-name>
>>>
>>> <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
>>> <load-on-startup>5</load-on-startup>
>>> </servlet>
>>>
>>> <servlet>
>>> <servlet-name>sitemesh-freemarker</servlet-name>
>>>
>>> <servlet-class>com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet</servlet-class>
>>> <init-param>
>>> <param-name>TemplatePath</param-name>
>>> <param-value>/</param-value>
>>> </init-param>
>>> <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>*.dec</url-pattern>
>>> </servlet-mapping>
>>> </code>
>>>
>>>
>>> My struts.xml is this minimal one, making Freemarker the default result
>>> type:
>>> <code>
>>> <package name="default" namespace="/" extends="struts-default">
>>> <result-types>
>>> <result-type name="freemarker"
>>> class="org.apache.struts2.views.freemarker.FreemarkerResult"
>>> default="true"/>
>>> </result-types>
>>> <action name="hello" class="org.gbif.action.IndexAction">
>>> <result>/WEB-INF/pages/hello.ftl</result>
>>> </action>
>>> </package>
>>> </code>
>>>
>>>
>>> I have also tried 2 different sitemesh page parsers, HTMLPageParser and
>>> FastPageParser, but that didnt help either.
>>>
>>> Ah, and this is the decorator I am using:
>>> <code>
>>> <?xml version="1.0"?>
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
>>> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
>>> <#assign
>>> decorator=JspTaglibs["http://www.opensymphony.com/sitemesh/decorator"] />
>>> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
>>> <head>
>>> <title><@decorator.title default="Struts2 Freemarker Sitemesh
>>> Hibernate"/></title>
>>> <@decorator.head/>
>>> </head>
>>> <body>
>>> <div id="main">
>>> <@decorator.body/>
>>> </div> <!-- /main -->
>>> </body>
>>> </html>
>>> </code>
>>>
>>> Any idea highly appreciated!
>>>
>>> Markus
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Struts-2.1.6%2C-Sitemesh---FreeMarkerPageFilter-tp21739507p21739507.html
>>> Sent from the Struts - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>>
>>
>>
>> --
>> "Hey you! Would you help me to carry the stone?" Pink Floyd
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Struts-2.1.6%2C-Sitemesh---FreeMarkerPageFilter-tp21739507p21745009.html
> Sent from the Struts - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
--
"Hey you! Would you help me to carry the stone?" Pink Floyd
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]