On Thu, Sep 04, 2008 at 10:06:15AM +0200, Oto Buchta wrote: > 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.
FreeMaker nepouzivam, nicmene napr. v JSONu nejde jen o obaleni dat do zavorek a uvozovek. Resi se ve FreeeMakeru nejak i napr. zakodovani specialnich znaku? Tj. treba \n, \t, atd ? ~Jakub > > 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. -- http://blogs.sun.com/japod
