Přeskočit na hlavní obsah

JSF & Facelets

Samotné JavaServer Faces (JSF) je ve své podstatě jednoduchý framework na view vrstvu, který komunikuje pomocí Backing Beans. JSF v žádném případě neruší metodiky JSP-Servletů, pouze je potlačuje ve prospěch vývojářů a snaží se nabídnout alternativu pomocí JSF.

V JSF je několik vlastností (zejména uvnitř faces-config.xml), které jistě stojí za to prozkoumat:

  • Navigace

  • Lokalizace a vlastní definice messages

  • Definice managed-beans (request, session) ...

  • Psaní HTML komponent v pomocí jsf/html

  • Tvorba vlastních UI komponent



Pro vývojáře, kteří mají s podobnými typy frameworků již zkušenosti, jistě není problém se JSF doučit. Ve chvíli, kdy je pro Vás jsp-servlet nový pojem, doporučuji rovnou začít na JSF. Samotná metodika Vás nakonec stejně donutí se jsp-servlety částečně doučit.

Když to vezmu do důsledků, tak jako vývojář v PHP jsem měl k jakýmkoliv frameworkům odpor. Ne snad z toho důvodu, že bych si raději všechno psal sám, ale z toho důvodu, že jsem nikdy nevěřil, že ten či onen framework bude i nadále podporován a že mi poskytne komplexní řešení.
U JSF je situace jiná. Samotný framework (stejně jako např. JavaPersistence API), je standardem SUNu, což samo o sobě dává pocit jakési jistoty, že se samotné API neučím nadarmo. Mám jistou záruku, že bude více využíván, dále podporován, či na něm budou postaveny další implementace, které se budou snažit dodržet standard a k tomu použiji své vlastní rozšíření.
Takovouto podobnost mohu nalézt např. mezi JPA a Hibernate, kde Hibernate se stalo plně kompatibilní s JPA a navíc nabízí vlastní rozšíření (např. CriteriaAPI).

Abych jen neházel samou chválou, přece jen mně na JSF trochu vadila jedna věc a to je "šablonovací systém". Nebo chcete-li, možnost, kdy budu vkládat své stránky do stejné "formičky".

Nakonec jsem našel "Facelets", což je v podstatě rozšíření samotného JSF, které je ovšem zaměřeno právě na šablonovací systém. Samotný popis lze nalézt zde.
Pro NetBeans existuje i vlastní plugin, který je popsán zde.

Takže pokud někdo začíná s webovými aplikacemi v Jave, doporučuji JSF-EJB3-JPA. I když není Java EE 5 zrovna jednoduchá záležitost (alespoň pro mě), tak stojí za to alespoň nahlédnout, jak vlastně taková architektura vícevrstvé aplikace (z pohledu Javy), vypadá.

Na webu Jakuba Vrány o PHP, se někteří lidé domnívali, že URL v JSF je statická. Na malý problém existuje malá náplast a tou je "" v navigation-case. Stejnou fintu je třeba použít, pokud budu tvořit zabezpečenou aplikaci přes url-pattern (/secure/*) v security-constraint.

Komentáře

  1. Někteří lidé jsme i já? Jestli jo, tak bych to rád upřesnil. Nemluvil jsem o JSF obecně, mluvil jsem o konkrétní vyscaffoldované aplikaci, která tímto zjevně trpěla.

    A mám ten dojem, že proto, že je mnohem jednodušší udělat takto použitelnou aplikaci alá IDOS (ten je sice v ASP.NET, ale to je prašť jako uhoď) a nějaká navigace se zpravidla dělá až nakonec jako takový bonus. Není to tak?

    OdpovědětVymazat
  2. V te chvili mi prislo, ze jste mluvili o tom, jak je to spatne. Kdyz uz neco takoveho napisi, je dulezite uvezt veci na pravou miru. Demo tutorialy slouzi jen k ukazkam. Psal jsem o tom celou dobu. To je to same, jako neexistence sablony, kde bych musel ke kazdemu souboru pripojovat cssko.
    To same se tyka rozdeleni aplikace. Kdyz bych chtel pouzit business logiku ve forme EJB, tak ji zde vlastne nemam implemenovanu. Duvodem je to, ze je to DEMO.
    No, nemyslim, ze by se delala az na konec. Zalezi v jakem projektu. Jelikoz se navigace definuje v XML souboru, mas samozrejme moznost to jednoduse a kdykoli menit. Jedna vec je staticka navigace a druha dynamicka (generovane menu, atd.). Ja tedy navigaci implementuji hned. Duvodem je i testovani a zapsani, kam vlastne ten ci onen odkaz smeruje :)
    Jinak, abych jen netvrdil jak je to super. Ten redirect je trochu osemetnej. Jak jsem psal, pri zapezpecovani aplikace na nejaky adresar, musim dat bacha, jak se do nej budu dostavat. Kdyz byt totiz poslal normalni commandLink a v navigation-case nezohlednil redirect, tak se na tu stranku dostanu, aniz bych melopravneni! Duvodem je i to, ze je takovy link poslan pres POST. Tohle me docela vadi. Mozna existuje zpusob, jak to obejit, ale ja na nej neprisel.

    OdpovědětVymazat
  3. Ten redirect je trochu osemetnej. Jak jsem psal, pri zapezpecovani aplikace na nejaky adresar, musim dat bacha, jak se do nej budu dostavat. Kdyz byt totiz poslal normalni commandLink a v navigation-case nezohlednil redirect, tak se na tu stranku dostanu, aniz bych melopravneni!

    To je samozrejme uplna kravina, aneb deklarativni rizeni pristupu skrze role.. a Java 5 s anotacemi to posunula opet o notny kus dale... - staci si jen patricne oblasti nastudovat...:)

    OdpovědětVymazat
  4. Kravina to bohuzel neni. Uprimne, je jasne, ze kdyz budu tvorit vetsi projekt, budu pozadovat nejake nastroje na autentifikaci a autorizaci.
    To ovsem nic nemeni na faktu, ze samotny JSF se svym POST je proste silenost.
    Ja se zde nebavim (nebavil), o tom, co by se melo pouzit. Pouze o tom, ze kdyz pri obycejnem "testovacim" zabezpeceni neco takoveho udelam, musim pocitat s timto problemem.

    OdpovědětVymazat

Okomentovat

Populární příspěvky z tohoto blogu

Jak si v IT vydělat hodně peněz?

Na začátek by bylo dobré, abych objasnil samotný titulek, který může na někoho působit jako červený hadr. Článek nebude o obecných pravidlech, ale bude vyprávět můj vlastní příběh, na kterém vám zkusím ukázat, jak se dá docílit úspěchu, či alespoň správně nastartovat svojí vlastní kariéru v IT.

I když se z názvu článku dá dedukovat, že se vše bude točit kolem peněz, není tomu tak. Alespoň ze dvou třetin určitě ne. Ale to už předbíhám, pojďme to raději vzít hezky popořadě...

Kdybychom měli mluvit o roce 2017 jako o přelomové době, nejspíše to nebude pravda. I když pro někoho to může být rok plný úspěchů a štěstí v podobě narození zdravých dětí, svatby či první velké lásky, tak z pohledu lidstva se jedná o rok, který jen kopíruje předešlé a v oblasti technologií nás posouvá stejným tempem jako rok předtím.

Jsem naprosto přesvědčen o tom, že i když se současná doba tak nenazývá, tak prožíváme dobu, která jednou bude označena za revoluční, a to zejména díky vynálezu internetu, který je st…

Jak by se firmy neměly chovat k programátorům?

Každý, kdo pracuje v IT oboru, se jistě již setkal s různými „geniálními nápady“, od kterých si firma slibovala zlepšení produktivity či snížení nákladů. Ať už je to zavedení agilních principů, striktní kontrola práce či zavedení nové a skvělé metodiky, o které si „šéf“ přečetl včera na internetu. Jsou z toho skutečně tak nadšení i samotní vývojáři? A bude nový nápad fungovat?
K napsání tohoto článku mě navedly různé programátorské diskuze, kde si lidé stěžovali na firmu, kde pracují. Příklady, které zde uvedu, jsou z reálné praxe. Ať už jsem je zažil jako řadový programátor, či jako šéf týmu.
I když je poptávka po programátorech tak vysoká, že Vás headhunteři nahánějí i ve chvílích, kdy o to opravdu nestojíte, tak i přes to je mnoho lidí, kteří se bojí opustit svoje současné zaměstnání.
Čeho se nejčastěji bojíme? Je to samozřejmě nejistota, kterou si často omlouváme větami jako: „Tady mám své pohodlí, co když to jinde mít nebudu?“ nebo „I když mě to v práci štve a nebaví, tak mě ale…

Jak jsem technologicky postavil startup

Tento příběh pojednává o technologiích, nástrojích a vůbec o všem, co jsem potřeboval k tomu, abych byl schopen, postavit startup na zelené louce.

Každý správný příběh začíná stejně: "Jednou jsem...."

Kapitola první: Nápad
Jednou jsem se setkal s člověkem, který měl nápad na produkt, který se v průmyslu zatím nevyskytuje. I přes prvotní skepsi, kdy jsem si říkal: "Tohle už přeci dávno v průmyslu existuje, ne?", jsem došel ke zjištění, že nikoli.

Tím jsem se dostal ke svému prvnímu poučení. Průmysl je technologicky dost zabržděný. Osobně se domnívám, že těch důvodů, proč tomu tak je, je několik. Za prvé je to fakt, že většina lidí, kteří se pohybují v tomto odvětví jsou často konzervativní a za správné považují pouze léty osvědčené věci. Druhým důvodem je to, že jakákoli změna znamená riziko. Ať už z pohledu finanční ztráty tak i z pohledu stability výroby. No a třetím a nejzásadnějším důvodem je to, že ač zde máme spousty technologických vymožeností, narážíme na to,…