FCKFaces

Součá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.

8 thoughts on “FCKFaces”

  1. 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.

  2. 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?

  3. Za 10 let? No přece vařit kafe grafikovi 😀
    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í.

  4. Spíš jsem měl namysli křivku růstu počtu kroků, které musí člověk udělat, aby mohl prostě vytvořit projekt a začít programovat (když už analýza existuje) …

  5. 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.

  6. 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).

  7. 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 🙂

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *