Sitemesh - decodery ve freemarkeru
Petr Pokorný
toneofwinds na gmail.com
Středa Únor 25 13:08:45 CET 2009
V tom pipade napisi muj priklad jelikoz si to potrebuji ujasnit na necem jednoduchem...
Toto je web.xml ...funkcne nastavene na filtruj vsechno
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!-- Filter for Sitemesh -->
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<servlet>
<servlet-name>sample</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/sample/*</url-pattern>
</servlet-mapping>
<!-- All requests should go through sidemesh filter -->
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext*.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
Decorator ma cestu k souboru
<decorators>
<decorator name="meDecorator" page="/decorators/decorator.jsp">
<pattern>*</pattern>
</decorators>
A ve springu je jen definice url na controller ktery zobrazuje jednoduchy freemarker template...
A pokud toto pridam do web.xml
<!--Declare servlet for handling freemarker requests -->
<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>/decorators/</param-value>
</init-param>
<init-param>
<param-name>default_encoding</param-name>
<param-value>ISO-8859-1</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>sitemesh-freemarker</servlet-name>
<url-pattern>*.dec</url-pattern>
</servlet-mapping>
A toto do decoderu.xml
<decorator name="frDecorator" page="/decorators/freemarkerDec.dec">
<pattern>/*.dec</pattern>
</decorator>
Pokud to volam /sample/index.dec
Tak to prevezme filter a ne sitemesh-freemarker
A bez filteru sitemesh to zobrazi oroginal freemarker template.
Premyslim zda jen nechapu jak poskladat vice filteru, a servletu dohromady.
Diky za odpoved
-----Original Message-----
From: konference-bounces na java.cz [mailto:konference-bounces na java.cz] On Behalf Of Filip Jirsák
Sent: Wednesday, February 25, 2009 12:26 PM
To: Java
Subject: Re: Sitemesh - decodery ve freemarkeru
Dobré odpoledne,
nevím, jaký případ řešíte konkrétně, ale obecně to funguje tak, že
servlet engine postupně prochází filtry odpovídající danému URL v
pořadí, v jakém jsou definovány, a nakonec (pokud zpracování nějaký
filtr nepřeruší nebo nepřesměruje jinam) se řízení předá jedinému
servletu, jeho vzor URL nejlépe odpovídá požadovanému URL. Jak přesně
se stanovuje, zda filtr patří k danému URL nebo ne a jak se stanovuje
pořadí toho, zda URL odpovídá vzoru servletu, najdete ve specifikaci,
není to zas tak jednoduché.
Pokud například nastavíte Freemarker, aby zpracovával cestu *.ftl, a
příslušné šablony nebudou v cestě, jejíž prefix by zpracovával nějaký
jiný servlet (např. nebudou v cestě /sablony/sablona.ftl v prípadě,
kdy existuje servlet pro cestu /sablony/*), stačí zavolat cestu s
koncovkou .ftl a příslušný soubor bude zpracován Freemarkerem.
S pozdravem
Filip Jirsák
Dne 25. únor 2009 11:42 Petr Pokorný <toneofwinds na gmail.com> napsal(a):
> Zdravim konferenci,
> potrebuji poradit o Sitemesh jako serveltu freemarkeru.
>
> Mam rozchozeny projekt kde mam Spring, freemarker a Sitemesh jako filtr.
> Funguje to bez probelmu. Dekodery jsou psane v JSP.
> Nejak si nedokazi dat dohroamdy, pridani servletu- freemarkeru, tak aby jsme
> mohli psat dekodery taky ve freemarkeru.
>
> Koukal jsem se na stranky Sitemesh, a vzal si tam ten jejich priklad a uz
> nekolikaty den to resim, bud si nedokazi poskladat jak pospolu funguje vice
> servletu a filter .. nebo tam mam nejakou jinou chybu.
>
> Mate nekdo o tom prehled, aby jste poradil jak to jednoduse s ungujiciho
> filteru prevest na freemarker servlet decoder?
>
> Diky za podporu
>
>
> Jsem spozdravem Petr Pokorny
>
>
> __________ Informace od ESET Smart Security, verze databaze 3876 (20090221)
> __________
>
> Tuto zpravu proveril ESET Smart Security.
>
> http://www.eset.cz
>
>
>
--
Filip Jirsák
filip na jirsak.org
__________ Informace od ESET Smart Security, verze databaze 3876 (20090221) __________
Tuto zpravu proveril ESET Smart Security.
http://www.eset.cz
Další informace o konferenci Konference