A lze najek zapsat vse co je sample ale konci .dec aby prevzal urcity servlet.
Premyslim jak kdyz mam definovany spring servlet, ktery chci aby prevzal url...ale zaroven potrebuji, aby to stejen url zpracoval i freemarker-sitemesh servlet aby se zpracoval v ramci dekoratoru. Mam jeste v apliakci 3 servlet dwr a stimto vse jede bez problemu. Takze ted zaroven resim , pochopeni chodu aplikace a konfigurovani sitemes-servletu, kde toho ke konfiguraci dle mehi pohledu neni. Diky za odpoved. Petr Pokorny -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Filip Jirsák Sent: Thursday, February 26, 2009 10:57 AM To: Java Subject: Re: Sitemesh - decodery ve freemarkeru Tohle se ale vůbec netýká filtrů nebo servletů ale nastavení Sitemesh. Následující konfigurace filtrů a servletů znamená toto: všechny pořadavky se předají filtru "sitemesh". Pokud tento filtr nepřesměruje požadavek jinam, pro všechny cesty začínající na "/sample/" se zpracují servletem "sample", pokud cesta nezačíná "/sample/" ale končí ".dec", zpracuje je "sitemesh-freemarker", ostatní případy zpracuje výchozí servlet (mapovaný k "/", pokud žádný nespecifikujete, poskytne jej zpravidla servlet kontejner). Filip Jirsák <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> </filter> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>sample</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet> <servlet> <servlet-name>sitemesh-freemarker</servlet-name> <servlet-class>com.opensymphony.module.sitemesh.freemarker.FreemarkerDecoratorServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>sample</servlet-name> <url-pattern>/sample/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>sitemesh-freemarker</servlet-name> <url-pattern>*.dec</url-pattern> </servlet-mapping> 2009/2/26 Petr Pokorný <[email protected]>: > Tak jsem to vyzkousel jen s *.dec a bez uspechu. Neklikrat jsem to zkousel > prepisovat, z meho pohledu na jednodusi zapisy a taky nic. > Tak to prozatim necham pres filter a zkusim se k tomu vratit az budu mit > vice zazitych informaci ohledne mapovani servletu. > > Petr a diky za informace > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On > Behalf Of Filip Jirsák > Sent: Wednesday, February 25, 2009 2:03 PM > To: Java > Subject: Re: Sitemesh - decodery ve freemarkeru > > Filtr to obsluhuje správně, protože má vzor "/*" -- takže se má > aplikovat na vše mimo pojmenovaných servletů. Pokud jej vyřadíte, > zobrazí se zdroj Freemarkeru z toho důvodu, že posíláte .dec soubor, > který neodpovídá žádné cestě servletu, takže jej odešle výchozí > servlet jako běžný soubor. > > Nevím přesně, jak fungují dekorátory a jejich vzory -- předpokládám, > že je přeposlání (forward) v rámci servlet kontejneru. Pokud se jako > vzory pro URL používá stejná syntaxe jako pro servlety a filtry, pak > "/*.dec" je špatně a mělo by to být "*.dec" bez lomítka. Vzory > začínají buď lomítkem a pak je to buď přesná shoda (pokud vzor nekončí > hvězdičkou), nebo předpona cesty (pokud cesta končí hvězdičkou). Druhý > typ vzorů začíná hvězdičkou a určuje "příponu souboru" (postfix > cesty). Ve vzorech pro servlety a filtry tedy nikdy nemůže být > hvězdička uprostřed vzoru. Je ale možné, že Sitemesh používá jiný > způsob rozpoznávání vzorů. > > Filip Jirsák > > Dne 25. únor 2009 13:08 Petr Pokorný <[email protected]> napsal(a): >> 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: [email protected] [mailto:[email protected]] 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ý <[email protected]> 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 >> [email protected] >> >> >> __________ Informace od ESET Smart Security, verze databaze 3876 (20090221) >> __________ >> >> Tuto zpravu proveril ESET Smart Security. >> >> http://www.eset.cz >> >> >> > > > > -- > Filip Jirsák > [email protected] > > -- Filip Jirsák [email protected]
