FCKFaces
Autor: Petr FerschmannSoučástí JSF implementace MyFaces je i balík rozšiřujících komponent Tomahawk. Ten obsahuje i komponentu pro wysiwyg editaci (<h:inputTextarea/>). Ta je celkem otřesná, pokud ji porovnáte třeba s FCKEditorem. Narazil jsem ovšem na FCKFaces – JSF plugin, který používá FCKEditor.
Instalace je jednoduchá. Stáhnete jar, přidáte do classpath (např. do pom.xml, nainstalujete do repository) a v JSP stránce můžete použít:
<ui:composition xmlns:fck="http://www.fck-faces.org/fck-faces">
<fck:editor value="#{akce.obsah}" width="100%" toolbarSet="Basic"/>
Aby ovšem modul fungoval správně (totiž všechny JavaScript soubory a obrázky jsou součástí jaru), musíte ještě použít FCKServlet a přidat jej do web.xml:
<servlet>
<servlet-name>FCKServlet</servlet-name>
<servlet-class>org.fckfaces.util.Servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FCKServlet</servlet-name>
<url-pattern>/fckfaces/*</url-pattern>
</servlet-mapping>
Začínám si myslet, že by bylo dobré, aby součástí JSF specifikace byl způsob exportu souborů potřebných pro JSF komponenty (MyFacesExtensions, FCKServlet, …). A přitom se jedná jen o poskytnutí souboru při požadavku.


11. Leden 2007 v 21:06
No já jsem pár komponent z Tomahawku použil a tam při instalaci rovnou nabádají jak upravit web.xml aby se správně dotahovaly jejich resourcy (http://myfaces.apache.org/tomahawk/extensionsFilter.html). Ten jsem si do své aplikačky přidal a neměl jsem s ničím problémy.
Každopádně na co jsem narazil, je naprosto příšerná dokumentace. Tedy alespoň některých komponent. Použil jsem např komponentu Data Scroller a Extended Data Table a abych vše dokázal uzpůsobit svým potřebám, musel jsem dost dlouho studovat přímo jejich zdrojáky.
12. Leden 2007 v 08:59
Já jsem s extensionsFilterem od Tomahawku také neměl žádné problémy. Pro FCKFaces je ale druhý. Už docela vidím, že takhle budu do web.xml přidávat 10 servletů/filtrů, aby poskytovali statický obsah.
Ale IMHO to jde lépe – dnes už také nemusím do Facelets registrovat jednotlivé knihovny tagů. Ony se prostě načtou sami.
Když si člověk dnes uvědomí, kolik kroků musí provést, aby mohl programovat v Javě s JSF a facelets, tak mi běhá mráz po zádech. Co budeme dělat za 10 let?
12. Leden 2007 v 16:11
Za 10 let? No přece vařit kafe grafikovi :D
Ale z druhé strany, porád je to jen front-end, největší know-how je v analýze a návrhu aplikace. Především těch, co jsou postaveny na databází.
12. Leden 2007 v 16:37
13. Leden 2007 v 08:13
To souhlasím. Někdy si říkám, jestli na webovou vrstvu nepaří spíš skriptovací jazyky ala Groovy, Ruby apod. Například po použití JSF jsem sice měl dobrý pocit z objektového návrhu – webová vrstva byla “čistá” (znáte ten vnitřní pocit). Ale co jsem se natrápil s takovými prkotinami – jako např.:
1) volání něajké stránky uvnitř aplikace přes statické url
2) dynamické zobrazování komponent na stránkách (a zde opravdu nemám pocit, že jsem tuhle problematiku zvládl)
3) použití cizích komponent -> navíc i potom graficky vypadaly nevábně (což může být jen moje grafická neschopnost ;))
4) zabezpečení přístupu na stránky (lifecycle interceptor má sice své přednosti, ale dá to dost špekulování)
5) redirect on client – mezi redirecty se ztrácí JSF kontext …
atd.
Mám radši cestu, kterou se ubírá Spring. Tam jsem na podobné “nedomyšlenosti” zatím nenarazil. Oni prostě dělají knihovnu pro programátory – s Myfaces JSF jsem takový pocit neměl.
13. Leden 2007 v 08:20
K JSF: má opravdu nějaké mušky. Myslím, že autoři JSF vůbec nevěděli co to je REST (asi věděli, ale nepoužili).
Takže když použijete trošku jiný přístup než všude naházet <h:commandLink/>, a navíc k tomu máte nástroje, které umí konverzace (conversation), tak se dostanete celkem néjen k čistotě, ale i k efektivitě. Touto knihovnou je např. JBoss Seam (od stejného autora jako hibernate).
31. Leden 2007 v 02:35
Mozna mam jiny zdroj, ale FCKFaces ze sf je k nicemu. Je to nedodelane, nedaji se nastavit rozmery… vlastne to vypada, ze to budu muset z vetsi casti dopsat sam. Nebo se mylim?
31. Leden 2007 v 10:00
Zdravím,
máš zřejmě stejnou knihovnu. Vše co jsem potřeboval mi fungovalo:
Šířku jsem nastavil na 100% a zbytek nastavoval přes CSS velikostí DIVu.
Pokud něco přidáš, pošli to zpátky autorům :-)