Zdravim,
 
Celkem pouzitelny se mi jevi Struts2, zalozeny na WebWorku. Co me zejmena 
zaujalo:
 
- Struts2 nevyzaduje pouziti tech prisernych ActionForm formularu, kterych bylo 
vzdy v projektu mraky a nic moc nedelaly. Clovek tedy mohl vve Struts1 pouzivat 
dyna action formy, ale ty stejne musel minimalne registrovat v konfiguracnich 
XML, jejichz velikost se rapidne zvetsovala a prehlednost zmensovala.
 
- Akce jsou ted POJO objekty, ktere neextenduji/neimplementuji zadny pochybny 
inteface (-> jednodusi testovani), pri submitu formulare se setuji property 
primo na te akci. 
 
- Akce muze mit vice vykonnych metod libovolneho jmena (ne tedy jen jednu 
metodu execute jako v Struts1), coz se mi jevi jako skvele pro CRUD akce, ktere 
tak mohou byt soucasti jedne Action bez toho, ze bych akce musel rozlisovat 
nejakym parametrem requestu a pak delat v execute rozskok apod. Metody v Action 
se rozlisuji uvedenim jmena metody v URL (bud za !, nebo za / - 
.../user.action!insert .../user.action/insert apod).
 
- Ze stranky je mozne akci volat akci primo bez toho, ze bych musel tu akci 
volat nejak predem (tj. jit na akci pres jeji URL, tam vse ulozit do scope 
promennych a forwardovat se na stranku, kde bych s temi scope promennymi dale 
pracoval). Tj. napriklad naplneni obsahu comba hodnotama znamena toto:

<s:action id="po_list" name="po_list" namespace="/m/test" flush="false"/>
 
    <s:form action="po_dump" namespace="/m/test" id="dump">
      <table>
        <tr>
          <td>PO type:</td>
          <td>
            <s:select name="entityName" size="1" list="#po_list.entityNames" 
value="#po_list.selectedEntityName"/> <-- zavola na akci po_list metody 
getEntityNames() a getSelectedEntityName() -->
          </td>
 
- Podpora namespacu akci. Namespacy se mohou extendovat, cimz se daji akce lepe 
organizovat (spolecne sdilene akce vs. specificke akce). Struts1 mely neco 
podobneho v podobe "modulu", ale ty namespacy mi prijdou dotazenejsi.
 
Par mensich much Struts2 jeste ma, ale uz existuje stabilni produkcni verze. 
 
Honza

-----Původní zpráva-----
Od: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] za uživatele Jiøí Chaloupka
Odesláno: Friday, March 23, 2007 07:28
Komu: Java
Předmět: Re: Jakarta Struts ?


Souhlas, nicméně bych na to pohlížel ještě z jedné strany.
Pokud je nějaký projekt vyvíjen soukromou osobou mimo korporátní podporu, hrozí 
Vám v případě, že ta osoba na projektu přestane pracovat a nikdo její práci 
nepřevezme, že po čase budete muset přepisovat kus aplikace jenom proto, že 
vyvstane nutnost přechodu na novější platformu, přičemž starý kód na ní už 
nebude fungovat (příklad - IT zákazníka se rozhodne přejít na novější verzi 
aplikačního serveru a dá vám řekněme půl roku, aby jste aplikaci na nové verzi 
vyzkoušel a případně upravil). Příklad kdy se něco takového stalo, byť tak 
trochu v uvozovkách, je ReiserFS.

Na druhou stranu, pokud se přidržíte knihoven a postupů v oficiálních větvích, 
je pravděpodobnost toho, že k něčemu podobnému dojde, znatelně nižší. Kolega tu 
uváděl EJB2.0, konkrétně entity beany. Jasně že dnes je Hibernate EJB3.0 
podstatně dál, ale entity beany jsou přesto velmi dobře použitelné a jsou 
podporovány všemi aplikačními servery dnes a troufám si tvrdit, že ještě pár 
let podporovány budou.

Čili zvažoval bych to i z tohoto pohledu, ale v daném případě záleží kdo je Váš 
zákazník a jestli záleží na Vás, na čem ta aplikace poběží, nebo jestli v tom 
máte jen "doporučující slovo"

Jirka


Martin Kuba napsal(a): 

Jiří Hradil wrote:

  

Dobrý den Martine,



Stripes jsou velmi hezké a jednoduché-nasadil byste je však do

produkčního prostředí (stabilita, řešení problémů)? Obávám se trochu

dalšího vývoje, JSF od Sunu jsou sice složité, ale z dlouhodobého

pohledu se mi právě JSF jeví jako stabilní a podporovaná platforma.

    



Odpovědí se bohužel musím posunout do oblasti dojmologie.

Když je něco jednoduché, tak to taky má tendenci být stabilnější

a případné problémy jsou řešeny rychleji, než u složitých řešení.



Že je něco podporováno nějakou velkou firmou není záruka ničeho.

Hraju si s webovými aplikacemi touhle dobou deset let, a pamatuju

se například na dobu, kdy firma IBM propagovala svůj

webový server ICSS (IBM Internet Connection Secure Server)

jako ten správný server, a ostouzela Apache. A ejhle,

do dvou let IBM zahodila ICSS, a začala používat a propagovat

Apache, protože byl *lepší*.



Stejně tak si firma SUN vymyslela Entity Enterprise Java Beans,

a asi osm let je propagovala jako to správné řešení,

aby nakonec uznala, že to nikdo nechce používat a všichni používají

Hibernate, a EJB v poslední verzi místo Entity EJB používají

JPA, což je přejmenované API od Hibernate.



Co se týká webových aplikací, tak SUN vymyslela servlety, což

byla dobrá věc. Ale pak si vymyslela JSP se skriptlety,

což byla špatnost a reakce na vznik Mikrosoftích ASP,

a propagovala je dlouhá léta. Až nakonec musela uznat,

že skriptlety jsou špatnost a pod tlakem úspěšných Struts

vytvořila JSTL tagy (podle Strutsích JSP tag libraries)

a přidala EL jazyk, který IMHO převzala ze Strutsů,

které ho převzaly z Freemarkeru. V době, kdy SUN

propagovala JSP verze 1.0, bylo zdaleka nejlepší

používat Freemarker.



Čili věci podporované SUNem jsou možná stabilní v tom smyslu,

že z důvodů zpětné kompatibility budou použitelné

i v budoucnu, ale není pravda, že je proto dobré je používat i

když existují lepší řešení, protože ta lepší řešení se časem

prosadí a SUN je bude muset akceptovat.





Makub

  


Odpovedet emailem