On Thu, Sep 04, 2008 at 09:19:46AM +0200, Tomas Zverina wrote: > Pokud mas tak silny odpor k tomu to psat vsechno "vicekrat" (i kdyz teda > myslim, ze u toho renderovani vysledku uz je vsechno slozite napsano a > zbyva jen proiterovat nejake beany a vytisknout jejich obsah) mohl bys treba > generovat nejake svoje proprietarni univerzalni XML a pak na to pustit > nejakou transformaci, ktera to ohne na vysledny format.
Tak ted nechapu, jaky je rozdil mezi tim, kdyz vygeneruju vlastni proprietarni XML a to pak transformaci prevedu do potrebneho formatu, nebo kdyz vygeneruju proprietarni FreeMarkerovou Hash-like strukturu a tu pak pomoci FreeMarkerove sablony prevedu do potrebneho formatu. Jedine, co mne napada, je, ze se v prvnim pripade musim pachtit s Java XML API (a je jedno, zda DOM, SAX, JDOM, XOM ci neco jineho), abych dostal validni XML, a to pak pomoci transformace (bud XQuery nebo XSLT) nejdrive naparsovat, abych to mohl transformovat (no dobre, serialize-parse se da odstranit, ale i tak). > Koles i LT maj 100% pravdu v tom, ze generovat takovyhle format > "System.out.println" neni nejlepsi napad ... Musis tu lenost prekonat, je to > pro dobrou vec :-) FreeMarker neni generovani pomoci System.out.println. Doporucuji se podivat na http://freemarker.org . Uz obrazek na homepage jasne ukazuje zakladni princip. V Jave se predpripravi data ve FreeMarkerovem formatu a ten pak naparsuje sablonu a vlozi ona data na to spravne misto. Navic pouziti sablony dava zadarmo moznost customizace dle potreb zakaznika, protoze jednim z vystupnich formatu muze byt i XHTML. A to se ani nebavim o dalsich pomerne netrivialnich protokolech jako treba SOAP, kdy mi tato RESTova servisa muze hrat roli RESTove XML ci SOAP servisy bez nutnosti navtrdo generovat WSDL. Misto toho lze pomerne jednoduse postavit wrapped-doclit SOAPMessage a korektne pres HTTP vratit ;-) A tak bych mohl pokracovat... A co treba zakaznicka plugovatelnost data generatoru - staci patricne rozsirit sablonu a voilŕ! Je to tam. FreeMarker samozrejme neni vhodny pro binarni formaty nebo pro generovani velkeho qanta dat, kde zalezi na rychlosti. Google WebServices bych v nem nepsal. Pokud je vystup textovy format (coz vetsina na Internetu pouzivanych protokolu je) a pokud je format dat dopredu znam (a neni nijak dramaticky netrivialni), nemyslim, ze neni duvodu FreeMarker ci Velocity (ci JavaFaces) nepouzit. Souhlasim, ze napsat to v PHP tak, ze se mi mixuje kod data generujici a vlastni vystup, je to na pendrek (to je onen sout<TAB> pristup). Samozrejme je vzdy mozne slozite struktury objektu zkonstruovat pomoci patricneho Java API (treba JSONu) a ty potom vratit jako SimpleScalar do sablony na patricnem miste. Vsichni si jiste dokazete predstavit, jak toto udelat pomoci specialniho JSP tagu, pricemz obdobny postup ovlada i FreeMarker. Navic co se tyka validity, neni nic jednodussiho nez napojit vystup behem testovani na validator patricneho formatu. Pokud mi nekdo uvedete protipriklad, rad se necham poucit. tapik > 2008/9/3 Oto Buchta <[EMAIL PROTECTED]> > > > On Wed, Sep 03, 2008 at 04:32:44PM +0200, Pavel Kolesnikov wrote: > > > Me prijde Freemarker na generovani machine readable dat tak trochu > > nevhodny, > > > kdy muzes pouzit jednoduche API z http://www.json.org/java/index.html > > > > > > Myslim, ze s touhle knihovnou by tvoje sestavovani JSONu bylo > > prehlednejsi > > > a jako side-effect bys mel po problemu, ktery popisujes. > > > > > > Pavel > > > > Ano, je to prehlednejsi a hezci. Ale. > > Ma to jeden hacek - jedna se o RESTovou aplikaci, kde si mohu rict, > > v jakem formatu chci patricny resource. A mam-li volby jako XML, RSS, ATOM, > > JSON, CSV (v prvnim nastrelu,m co bude dal nevim), prijde mi sablonovac > > jako jediny schudny nastroj, nechci-li kazde implementovat zvlast... > > > > Nebo kdybys snad mel tip na nejakou REST-like knihovnu na generovani > > machine > > readable formatu, dej vedet. Ja ne, tak si ji musim napsat sam. > > > > tapik > > > > > > > > 2008/9/3 Oto Buchta <[EMAIL PROTECTED]>: > > > > Zdravim, > > > > chtel bych se zeptat, jeslti jste narazili na problem, kdyz na konci > > pole > > > > je pred hranatou zavorkou carka. Vim, ze dle syntaxe jde o chybu, ale > > > > generuju JSON ve FreeMarkeru a priznam se, ze se mi na tech padesati > > mistech > > > > nechce pocitat pocet prvku a za poslednim tu carku nedelat nebo > > zapomenout > > > > na foreach nebo dokonce davat null jako ukoncovak... > > > > > > > > Chtel bych si to dovolit, nebot v javadocu k org.json,JSONArray se > > pise: > > > > > > > > The texts produced by the toString methods strictly conform to JSON > > syntax rules. The constructors are more forgiving in the texts they will > > accept: > > > > > > > > * An extra , (comma) may appear just before the closing bracket. > > > > > > > > Dik, > > > > > > > > tapik > > > > > > > > > > -- > S pozdravem, > > Tomas Zverina > > Multimedia atelier s.r.o. > Na Dolinách 4 > 147 00 Praha 4 > IČO: 25127071 > tel.: 241 433 120 > e-mail: [EMAIL PROTECTED] > http://www.m-atelier.cz/ > > Společnost Multimedia atelier s.r.o. je zapsána u rejstříkového soudu v > Praze, oddíl C, vložka 51961.
