12 komentáře “Překonaný ResourceBundle, Spring MessageSource vítězí v prvním kole KO

  1. Zpětný odkaz: » Nástroje pro vývoj web aplikací ve Forrestu Myšlenky dne otce Fura

  2. Díky. Bylo by možné alespoň naznačit implementaci Resource rozhraní v případě, že data jsou v DB uložena jako jednotlivé řádky, nikoliv soubor (clob). Je možné i v tomto případě do DB přistupovat pomocí EntityManageru (tedy s využitím existujícího připojení do DB)?

    PS: Moje otázky asi zní hloupě, ale dostal jsem se k J2EE aplikacím teprve nedávno, tak studuju a studuju, ale postrádám některé zásadní praktické zkušenosti 🙁

  3. ResourceLoader ti umožní získat Resource pro libovolný binární obsah ze zdrojového úložiště, které je daným ResourceLoaderem podporováno. Spring podporuje několik základních typů zdrojových úložišť: classpath, file, url, servlet context a toto rozhraní je přímo implementováno ApplicationContextem.

    Rozbor s examplem:
    http://www.mkyong.com/spring/spring-resource-loader-with-getresource-example/

    Pokud člověk potřebuje dodat nový typ úložiště (např. DB) musí udělat dvě věci:

    1) extendovat konkrétní ApplicationContext třídu (tj. např. ClassPathXmlApplicationContext nebo XmlWebApplicationContext apod.) a přetížit metodu org.springframework.core.io.DefaultResourceLoader#getResourceByPath, ve které následně implementovat rozpoznání nového typu zdrojového úložiště (např. prefixem db:)

    2) implementovat vlastní implementaci Resource rozhraní pro soubor uložený v DB (tj. něco, co ve finále poskytne InputStream)

    A to je vše. My jsme si podobné rozšíření provedli, ale bohužel ho nemůžu ukázat. V našem případě je totiž natolik specifické, že bych to musel, pro účely porozumitelného příkladu, naimplementovat znovu.

  4. Ahoj, v clanku je napsano: „resourceLoader – implementace rozhraní pro přístup k souborům reprezentujícím message bundly; díky resource loaderu můžete jednoduše zajistit načtení obsahu souboru třebas z databáze“

    Nebyl by nejaky priklad jak to nacitani z DB udelat? Googlil jsem neuspesne 🙁

    Moc hezkej clanek!

  5. Pravda … opravím v článku cacheMillis je název fieldu. Setter metoda je cacheSeconds a hodnotu tam převádějí na milisekundy. Omlouvám se.

  6. Díky za výborný článek, MessageSource jsem sice znal, ale rozhodně ne tak detailně. I like this. Ale pořád si myslím, že ideální by bylo mít texty (aspoň jejich defaulty) přimo v HTML šabloně. Máme na to nějaké udělátko, ale pro webaře není úplně příjemné…

  7. Teprve teď jsem měl čas kouknout trochu na ten PRB Editor a vypadá na překlady většího rázu opravdu dobře. Nemáte někdo tip na nějakou kvalitní překladovou agenturu, která by uměla pracovat s něčím jiným než s Wordem a Excelem?

  8. Pavel: vím, že konverzi by mělo řešit IDE, nicméně jsou situace, kdy člověk potřebuje udělat třeba rychlý zásah někde kde IDE k dispozici není. Nebo pokud třeba ne zrovna zásah, tak minimálně kouknout rovnou do property bundlu, co je tam vlastně uložené a encodované znaky čitelnost výrazně snižují (BTW – řada našich webařů dělá v Notepad++ nebo PSPadu, takže i to je argument).

    Makub: pravda …. moje chybka. Spring nabízí ve standardní TLD knihovně JSP tag. Více viz. http://static.springframework.org/spring/docs/1.1.5/taglib/tag/MessageTag.html

    Tento tag potom bude koukat do defaultního web aplikačního kontextu, takže při nějakém složitějším složení stromu aplikačních kontextů na serverové straně bude třeba zajistit, aby byl viditelný správný MessageSource.

  9. Nějak jsem z toho nepochopil, jak se dostanu k textům z JSP stránek. Ideálně pomocí JSTL tagů.