Re: Code-Behind
Suhlasim s Pertrom. Je vsak dalsi pohlad na vec a to vykon(pamat, cpu, up/down strem) klienta. Ak ho spravne vyuzijeme mozeme obsluzit viac klientov alebo s rychlejsou odozvou. Vid http://www.tibco.com/devnet/resources/gi/3_5/doc/html/wwhelp/wwhimpl/js/html/wwhelp.htm?href=tib_gi_getting_started/gs.4.4.htm . A ria mozu su ciastocne adresovatelne, resp. mohli by byt aj uplne adresovatelne. U GWT sa to vola history management vid: http://gwt.google.com/samples/KitchenSink/KitchenSink.html Petr Gola wrote / napísal(a): Článek jsem nečetl, reaguji jen na poslední příspěvěk. Ano, plně adresovatelný web je výhodou. Já jsem jednoznačně jeho příznivcem. Ale osobně se domnívám, že boom aplikací v prohlížeči je v jejich přístupnosti, okamžité použitelnosti. Internetový prohlížeč tvoří jakousi jednotnou platformu (v rámci možností). Není třeba nic instalovat, některé prohlížeče navíc běží pod všemi operačními systémy :) ... On 26/10/2007, Martin Kuba [EMAIL PROTECTED] wrote: Jozef Babjak wrote: Velmi odporucam vsetkym, co sa aktivne zapojili do tohto threadu (a aj vsetkym inym, samozrejme) toto: http://www.theserverside.com/news/thread.tss?thread_id=47213 Přečetl jsem si ten článek celý, a ačkoliv jejich analýza je celkem přesná a zvlášť historický exkurz Microsoft versus lidstvo je zcela trefný, s jejich závěry nesouhlasím. V podstatě doporučují návrat od ultra-thin HTML klientů k rich klientům, nebo jinými slovy od HTML dokumentů zpět k aplikacím běžícím na klientech. Jenomže to IMHO povede k jedné věci, kterou brutálně demonstrují aplikace typu http://www.tipcars.cz/ - web přestane být adresovatelný. Už nepůjde někomu poslat URL na položku ze seznamu, která se mi líbí, protože žádné URL už mít nebude. Už to bude jenom určitý client-side stav v aplikaci, který nemá adresu a je nepřenosný. Můj skromný názor je, že pokud by měli pravdu, tak by si lidé místo prohlížení webových stránek stahovali a pouštěli aplikace pro MS-Windows, protože ty má stejně 99% lidí před sebou. Jenže existují dva druhy aplikací. V jedněch opravdu nepotřebuji mít možnost si poznamenat stav - například čtení pošty přes GMail. A pak jsou aplikace, kdy bych si nějaký stav uložit chtěl, třeba právě na tipcars.cz bych si moc chtěl uložit odkaz na konkrétní auto, ale nemůžu, když je to aplikace a ne HTML dokument. Takže rich klienti se hodí jen pro první druh aplikací, pro druhý typ ne. Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --
Re: Code-Behind
Jo s tou dvoji deklaraci mas pravdu. Jednou je to v ASPX a jednou v parcialni tride generovane automaticky IDE. Mne jinak nevadi ze pouzivam get() set(), vadi mi jen ze ty get() set() musim zbytecne psat do beany, ktera navic musi implementovat cosi (takze spousta zbytecne prace). Kdyz ve Swingu pouziju textfield, tak taky nemusim dopisovat nejake metody abych vytahl z koponenty jeji hodnotu. Swing komponenta vsechny metody pro praci s ni uz ma v sobe. Podobne bych rad pracoval v Jave i na webu. Rozhodne by to znamenalo psani mene kodu a pro lidi zvykly delat se Swingem a s objekty obecne rychlejsi ucici krivku. Petr Martin Kuba wrote: Petr Synek wrote: To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. Calculator a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde. Od intuitivniho web frameworku bych cekal ze s komponentou numberOne budu rovnou v Jave (v code behind) pracovat takto: String text = numberOne.getText(); numberOne.setText(Franta) Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself). Jak se koukam na code-behind na http://support.microsoft.com/kb/303247 tak ten TextBox je tam taky definovany dvakrat, jednou v ASPX: asp:textbox id=MyTextBox text=Hello World runat=server/asp:textbox a podruhe ve tride: protected System.Web.UI.WebControls.TextBox MyTextBox; Jestli .NET pristupuje k protected promennym primo, bez setXXX() a getXXX() metod, tak je to strucnejsi, ale porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy. Nevidim vyhodu toho, kdyz musim objekt nadeklarovat a pak na nem volat metodu: protected System.Web.UI.WebControls.TextBox MyTextBox; public void MyButton_Click(Object sender, EventArgs e){ MyLabel.Text = MyTextBox.Text.ToString(); } oproti tomu, kdyz nadefinuju rovnou hodnotu: private String text; public Resolution click() { label = text; text = Franta; ... } Ale jestli to moc potrebujete, staci udelat toto: public class Neco implements ActionBean{ ... public static class TextBox { private String text; public String getText() { return text; } public void setText(String s) { text = s;} } private TextBox textBox = new TextBox(); public TextBox getTextBox() { return textBox; } public Resolution click() { String text = textBox.getText(); textBox.setText(Franta); } a v JSP udelat s:text name=textBox.text / Tot vse. Makub
Re: Code-Behind
Mate pravdu ze backing bean muze slouzit pro vice komponent. Ale stale to znamena ze musite backing bean napsat. Ve Swingu se nepouziva backing bean. Tam komponenty maji model tridu implicitne v sobe. Napr. text komponenty maji model reprezentovany tridou Document, ta uz ve Swingu je a vytvori se automaticky spolu s komponentou, ale pokud chcete muzete si dodat i Document svuj. Rozhodne ale model neni sdileny vice komponentami, tak jako v JSF. Petr Josef Petrák - KYBERIE wrote: Když si porovnáte Swing a JSF, tak jsou na tom stejně, třeba JLabel [JLabel] vs. UIOutput [UIOutput], to jsou ekvivalentní komponenty, definující gettery/settery pro své atributy. Backing Bean, do které vpisujete getttery/settery reprezentuje nějaký logický celek rozhraní, nikoliv jedinou komponentu. To není to samé, ne? Ani nevím, jestli něco, jako Backing Bean se používá ve Swingu? [JLabel] http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JLabel.html [UIOutput] http://java.sun.com/javaee/javaserverfaces/1.1/docs/api/javax/faces/componen t/UIOutput.html S pozdravem Josef Petrák, Java vývojář --- FOAF:http://jspetrak.zapisky.info/profile.rdf E-mail: [EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] Mobil: +420603254189 ICQ: 179271149 --- KYBERIE Web: http://www.kyberie.cz Tel: +420226002016 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Petr Synek Sent: Friday, October 26, 2007 11:29 AM To: Java Subject: Re: Code-Behind Jo s tou dvoji deklaraci mas pravdu. Jednou je to v ASPX a jednou v parcialni tride generovane automaticky IDE. Mne jinak nevadi ze pouzivam get() set(), vadi mi jen ze ty get() set() musim zbytecne psat do beany, ktera navic musi implementovat cosi (takze spousta zbytecne prace). Kdyz ve Swingu pouziju textfield, tak taky nemusim dopisovat nejake metody abych vytahl z koponenty jeji hodnotu. Swing komponenta vsechny metody pro praci s ni uz ma v sobe. Podobne bych rad pracoval v Jave i na webu. Rozhodne by to znamenalo psani mene kodu a pro lidi zvykly delat se Swingem a s objekty obecne rychlejsi ucici krivku. Petr Martin Kuba wrote: Petr Synek wrote: To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. Calculator a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde. Od intuitivniho web frameworku bych cekal ze s komponentou numberOne budu rovnou v Jave (v code behind) pracovat takto: String text = numberOne.getText(); numberOne.setText(Franta) Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself). Jak se koukam na code-behind na http://support.microsoft.com/kb/303247 tak ten TextBox je tam taky definovany dvakrat, jednou v ASPX: asp:textbox id=MyTextBox text=Hello World runat=server/asp:textbox a podruhe ve tride: protected System.Web.UI.WebControls.TextBox MyTextBox; Jestli .NET pristupuje k protected promennym primo, bez setXXX() a getXXX() metod, tak je to strucnejsi, ale porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy. Nevidim vyhodu toho, kdyz musim objekt nadeklarovat a pak na nem volat metodu: protected System.Web.UI.WebControls.TextBox MyTextBox; public void MyButton_Click(Object sender, EventArgs e){ MyLabel.Text = MyTextBox.Text.ToString(); } oproti tomu, kdyz nadefinuju rovnou hodnotu: private String text; public Resolution click() { label = text; text = Franta; ... } Ale jestli to moc potrebujete, staci udelat toto: public class Neco implements ActionBean{ ... public static class TextBox { private String text; public String getText() { return text; } public void setText(String s) { text = s;} } private TextBox textBox = new TextBox(); public TextBox getTextBox() { return textBox; } public Resolution click() { String text = textBox.getText(); textBox.setText(Franta); } a v JSP udelat s:text name=textBox.text / Tot vse. Makub __ Informace od NOD32 2618 (20071026) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz
RE: Code-Behind
Když si porovnáte Swing a JSF, tak jsou na tom stejně, třeba JLabel [JLabel] vs. UIOutput [UIOutput], to jsou ekvivalentní komponenty, definující gettery/settery pro své atributy. Backing Bean, do které vpisujete getttery/settery reprezentuje nějaký logický celek rozhraní, nikoliv jedinou komponentu. To není to samé, ne? Ani nevím, jestli něco, jako Backing Bean se používá ve Swingu? [JLabel] http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JLabel.html [UIOutput] http://java.sun.com/javaee/javaserverfaces/1.1/docs/api/javax/faces/componen t/UIOutput.html S pozdravem Josef Petrák, Java vývojář --- FOAF:http://jspetrak.zapisky.info/profile.rdf E-mail: [EMAIL PROTECTED] Jabber: [EMAIL PROTECTED] Mobil: +420603254189 ICQ: 179271149 --- KYBERIE Web: http://www.kyberie.cz Tel: +420226002016 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Petr Synek Sent: Friday, October 26, 2007 11:29 AM To: Java Subject: Re: Code-Behind Jo s tou dvoji deklaraci mas pravdu. Jednou je to v ASPX a jednou v parcialni tride generovane automaticky IDE. Mne jinak nevadi ze pouzivam get() set(), vadi mi jen ze ty get() set() musim zbytecne psat do beany, ktera navic musi implementovat cosi (takze spousta zbytecne prace). Kdyz ve Swingu pouziju textfield, tak taky nemusim dopisovat nejake metody abych vytahl z koponenty jeji hodnotu. Swing komponenta vsechny metody pro praci s ni uz ma v sobe. Podobne bych rad pracoval v Jave i na webu. Rozhodne by to znamenalo psani mene kodu a pro lidi zvykly delat se Swingem a s objekty obecne rychlejsi ucici krivku. Petr Martin Kuba wrote: Petr Synek wrote: To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. Calculator a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde. Od intuitivniho web frameworku bych cekal ze s komponentou numberOne budu rovnou v Jave (v code behind) pracovat takto: String text = numberOne.getText(); numberOne.setText(Franta) Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself). Jak se koukam na code-behind na http://support.microsoft.com/kb/303247 tak ten TextBox je tam taky definovany dvakrat, jednou v ASPX: asp:textbox id=MyTextBox text=Hello World runat=server/asp:textbox a podruhe ve tride: protected System.Web.UI.WebControls.TextBox MyTextBox; Jestli .NET pristupuje k protected promennym primo, bez setXXX() a getXXX() metod, tak je to strucnejsi, ale porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy. Nevidim vyhodu toho, kdyz musim objekt nadeklarovat a pak na nem volat metodu: protected System.Web.UI.WebControls.TextBox MyTextBox; public void MyButton_Click(Object sender, EventArgs e){ MyLabel.Text = MyTextBox.Text.ToString(); } oproti tomu, kdyz nadefinuju rovnou hodnotu: private String text; public Resolution click() { label = text; text = Franta; ... } Ale jestli to moc potrebujete, staci udelat toto: public class Neco implements ActionBean{ ... public static class TextBox { private String text; public String getText() { return text; } public void setText(String s) { text = s;} } private TextBox textBox = new TextBox(); public TextBox getTextBox() { return textBox; } public Resolution click() { String text = textBox.getText(); textBox.setText(Franta); } a v JSP udelat s:text name=textBox.text / Tot vse. Makub __ Informace od NOD32 2618 (20071026) __ Tato zprava byla proverena antivirovym systemem NOD32. http://www.nod32.cz
Re: Code-Behind
Velmi odporucam vsetkym, co sa aktivne zapojili do tohto threadu (a aj vsetkym inym, samozrejme) toto: http://www.theserverside.com/news/thread.tss?thread_id=47213
Re: Code-Behind
Jozef Babjak wrote: Velmi odporucam vsetkym, co sa aktivne zapojili do tohto threadu (a aj vsetkym inym, samozrejme) toto: http://www.theserverside.com/news/thread.tss?thread_id=47213 Přečetl jsem si ten článek celý, a ačkoliv jejich analýza je celkem přesná a zvlášť historický exkurz Microsoft versus lidstvo je zcela trefný, s jejich závěry nesouhlasím. V podstatě doporučují návrat od ultra-thin HTML klientů k rich klientům, nebo jinými slovy od HTML dokumentů zpět k aplikacím běžícím na klientech. Jenomže to IMHO povede k jedné věci, kterou brutálně demonstrují aplikace typu http://www.tipcars.cz/ - web přestane být adresovatelný. Už nepůjde někomu poslat URL na položku ze seznamu, která se mi líbí, protože žádné URL už mít nebude. Už to bude jenom určitý client-side stav v aplikaci, který nemá adresu a je nepřenosný. Můj skromný názor je, že pokud by měli pravdu, tak by si lidé místo prohlížení webových stránek stahovali a pouštěli aplikace pro MS-Windows, protože ty má stejně 99% lidí před sebou. Jenže existují dva druhy aplikací. V jedněch opravdu nepotřebuji mít možnost si poznamenat stav - například čtení pošty přes GMail. A pak jsou aplikace, kdy bych si nějaký stav uložit chtěl, třeba právě na tipcars.cz bych si moc chtěl uložit odkaz na konkrétní auto, ale nemůžu, když je to aplikace a ne HTML dokument. Takže rich klienti se hodí jen pro první druh aplikací, pro druhý typ ne. Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 -- smime.p7s Description: S/MIME Cryptographic Signature
Re: Code-Behind
Článek jsem nečetl, reaguji jen na poslední příspěvěk. Ano, plně adresovatelný web je výhodou. Já jsem jednoznačně jeho příznivcem. Ale osobně se domnívám, že boom aplikací v prohlížeči je v jejich přístupnosti, okamžité použitelnosti. Internetový prohlížeč tvoří jakousi jednotnou platformu (v rámci možností). Není třeba nic instalovat, některé prohlížeče navíc běží pod všemi operačními systémy :) ... On 26/10/2007, Martin Kuba [EMAIL PROTECTED] wrote: Jozef Babjak wrote: Velmi odporucam vsetkym, co sa aktivne zapojili do tohto threadu (a aj vsetkym inym, samozrejme) toto: http://www.theserverside.com/news/thread.tss?thread_id=47213 Přečetl jsem si ten článek celý, a ačkoliv jejich analýza je celkem přesná a zvlášť historický exkurz Microsoft versus lidstvo je zcela trefný, s jejich závěry nesouhlasím. V podstatě doporučují návrat od ultra-thin HTML klientů k rich klientům, nebo jinými slovy od HTML dokumentů zpět k aplikacím běžícím na klientech. Jenomže to IMHO povede k jedné věci, kterou brutálně demonstrují aplikace typu http://www.tipcars.cz/ - web přestane být adresovatelný. Už nepůjde někomu poslat URL na položku ze seznamu, která se mi líbí, protože žádné URL už mít nebude. Už to bude jenom určitý client-side stav v aplikaci, který nemá adresu a je nepřenosný. Můj skromný názor je, že pokud by měli pravdu, tak by si lidé místo prohlížení webových stránek stahovali a pouštěli aplikace pro MS-Windows, protože ty má stejně 99% lidí před sebou. Jenže existují dva druhy aplikací. V jedněch opravdu nepotřebuji mít možnost si poznamenat stav - například čtení pošty přes GMail. A pak jsou aplikace, kdy bych si nějaký stav uložit chtěl, třeba právě na tipcars.cz bych si moc chtěl uložit odkaz na konkrétní auto, ale nemůžu, když je to aplikace a ne HTML dokument. Takže rich klienti se hodí jen pro první druh aplikací, pro druhý typ ne. Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --
Code-Behind
Dobrý den, Jsem programátor C# a ve svém volném čase si rozšiřuji obzory a učím se Java. Nedávno jsem zkoušel napsat web aplikace a trochu mi chybělo rozdělění code od HTML. A teď k mé otázce: Existuje možnost psát JSP stránky v režimu Code-Behind ? Když jsem se koukal na videa NetBeans 6 beta 1, tak se mi zdálo že tam něco jako code-behind je, ale nejsem si jist. Předem děkuji za odpověď, Korecký
Re: Code-Behind
Nevim jestli si predstavujete pod pojmem Code-Behind to same co ja, kazdopadne: - vetsina web frameworku je striktne MVC - JSF + Facelets|Clay, Tapestry, Wicket umoznuji psat stare dobre HTML a pres specialni binding (atribut HTML elementu) napojit jednotlive komponenty na jejich serverove protejsky Ing. Vladislav Korecký napsal(a): Dobrý den, Jsem programátor C# a ve svém volném čase si rozšiřuji obzory a učím se Java. Nedávno jsem zkoušel napsat web aplikace a trochu mi chybělo rozdělění code od HTML. A teď k mé otázce: Existuje možnost psát JSP stránky v režimu Code-Behind ? Když jsem se koukal na videa NetBeans 6 beta 1, tak se mi zdálo že tam něco jako code-behind je, ale nejsem si jist. Předem děkuji za odpověď, Korecký -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: Code-Behind
V C# je situace následující : Každá aspx stránka má 3 soubory: jmeno.aspx - layout stránky, serverovy prvek (komponenta) je reprezentovana spec. HTML elementem např: cc1:mujKontrol ... / jmeno.design.cs - design generated code, kod generovany designerem (VS2005) Jsou zde deklarace objektu použitých v aspx stránce. jmeno.cs - samotný C# code dané stránky (metody, property, atd ... ) Pak je striktně oddělen layout od samotného kodu. A uvítal bych tuto možnost i v Java, dle vaší odpovědi soudím, že to tam jde a že je to ta druhá možnost. Je to tak ? Doufám že jsem to popsal srozumitelně. Korecký Roman Pichlik wrote: Nevim jestli si predstavujete pod pojmem Code-Behind to same co ja, kazdopadne: - vetsina web frameworku je striktne MVC - JSF + Facelets|Clay, Tapestry, Wicket umoznuji psat stare dobre HTML a pres specialni binding (atribut HTML elementu) napojit jednotlive komponenty na jejich serverove protejsky Ing. Vladislav Korecký napsal(a): Dobrý den, Jsem programátor C# a ve svém volném čase si rozšiřuji obzory a učím se Java. Nedávno jsem zkoušel napsat web aplikace a trochu mi chybělo rozdělění code od HTML. A teď k mé otázce: Existuje možnost psát JSP stránky v režimu Code-Behind ? Když jsem se koukal na videa NetBeans 6 beta 1, tak se mi zdálo že tam něco jako code-behind je, ale nejsem si jist. Předem děkuji za odpověď, Korecký
Re: Code-Behind
Ahoj, ona je to i ta prvni moznost :-)) protoze vsechny frameworky vypsane v druhem bode pouzivaji MVC jako navrhovy vzor. Jirka Ing. Vladislav Korecký napsal(a): V C# je situace následující : Každá aspx stránka má 3 soubory: jmeno.aspx - layout stránky, serverovy prvek (komponenta) je reprezentovana spec. HTML elementem např: cc1:mujKontrol ... / jmeno.design.cs - design generated code, kod generovany designerem (VS2005) Jsou zde deklarace objektu použitých v aspx stránce. jmeno.cs - samotný C# code dané stránky (metody, property, atd ... ) Pak je striktně oddělen layout od samotného kodu. A uvítal bych tuto možnost i v Java, dle vaší odpovědi soudím, že to tam jde a že je to ta druhá možnost. Je to tak ? Doufám že jsem to popsal srozumitelně. Korecký Roman Pichlik wrote: Nevim jestli si predstavujete pod pojmem Code-Behind to same co ja, kazdopadne: - vetsina web frameworku je striktne MVC - JSF + Facelets|Clay, Tapestry, Wicket umoznuji psat stare dobre HTML a pres specialni binding (atribut HTML elementu) napojit jednotlive komponenty na jejich serverove protejsky Ing. Vladislav Korecký napsal(a): Dobrý den, Jsem programátor C# a ve svém volném čase si rozšiřuji obzory a učím se Java. Nedávno jsem zkoušel napsat web aplikace a trochu mi chybělo rozdělění code od HTML. A teď k mé otázce: Existuje možnost psát JSP stránky v režimu Code-Behind ? Když jsem se koukal na videa NetBeans 6 beta 1, tak se mi zdálo že tam něco jako code-behind je, ale nejsem si jist. Předem děkuji za odpověď, Korecký -- Jiří Mareš (mailto:[EMAIL PROTECTED]) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic
Re: Code-Behind
Ing. Vladislav Korecký wrote: Dobrý den, Jsem programátor C# a ve svém volném čase si rozšiřuji obzory a učím se Java. Nedávno jsem zkoušel napsat web aplikace a trochu mi chybělo rozdělění code od HTML. A teď k mé otázce: Existuje možnost psát JSP stránky v režimu Code-Behind ? V javě se tomu neříká Code-behind, ale separace kódu a HTML. Vycházím z toho, co o code-behind píšou na http://support.microsoft.com/kb/303247 Je více možností, jak to udělat. Jedna je, že v JSP stránce použijete [EMAIL PROTECTED] extends=cz.neco.MojeTrida % a v MojeTrida.java bude kód. Ale tak se to obvykle nedělá, protože JSP na rozdíl od ASP.NET neprovedou žádnou magii, která by při kliknutí na button vyvolala metodu na třídě. Používají se různé frameworky, a každý na to jde jinak. Podívejte se na moje oblíbené Stripes http://stripes.mc4j.org/confluence/display/stripes/Home tam se to udělá tak, že v JSP je %@ taglib prefix=s uri=http://stripes.sourceforge.net/stripes.tld; % s:form action=/obsluha.action s:errors/ tabletr tdjméno:/td tds:text name=jmeno //td /tr/table s:submit name=delejNecoOdesli/s:submit /s:form a pak musí existovat třída, ve které je: @UrlBinding(/obsluha.action) public class Obsluha implements ActionBean { ... @Validate(on = {delejNeco}, required=true) private String jmeno; public String getJmeno() { return jmeno; } public void setJmeno(String s) { jmeno = s; } public Resolution delejNeco() { //nejaka prace s promennou jmeno return new ForwardResolution(/nejaka.jsp); } A jestli nam v Jave 7 zavedou @Property, tak se to otravne getJmeno() a setJmeno() nebude muset psat. Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 -- smime.p7s Description: S/MIME Cryptographic Signature
Re: Code-Behind
A jak je to s obsluhou jednotlivých kontrolů na serveru ? Opět malá ukázka ze C#: File.aspx: ... input type=text id=mujTextBox runat=server / ... File.cs ... mujTextBox.Text = Muj text; ... Nevím zda je to z mé ukázky patrné, ale jde o to, že když dám kontrolu v aspx stránce přepínač runat=server, je tento kontrol dostupný na serverové částí a mohu s ním pracovat jako s každým jiným objektem. Je to součást Code-Behind přístupu. Mám tuto možnost i v Java ? Pokud ano můžete mi prosím poslat nějaký link na tutorial ? Děkuji, Korecký Jiri Mares wrote: Ahoj, ona je to i ta prvni moznost :-)) protoze vsechny frameworky vypsane v druhem bode pouzivaji MVC jako navrhovy vzor. Jirka Ing. Vladislav Korecký napsal(a): V C# je situace následující : Každá aspx stránka má 3 soubory: jmeno.aspx - layout stránky, serverovy prvek (komponenta) je reprezentovana spec. HTML elementem např: cc1:mujKontrol ... / jmeno.design.cs - design generated code, kod generovany designerem (VS2005) Jsou zde deklarace objektu použitých v aspx stránce. jmeno.cs - samotný C# code dané stránky (metody, property, atd ... ) Pak je striktně oddělen layout od samotného kodu. A uvítal bych tuto možnost i v Java, dle vaší odpovědi soudím, že to tam jde a že je to ta druhá možnost. Je to tak ? Doufám že jsem to popsal srozumitelně. Korecký Roman Pichlik wrote: Nevim jestli si predstavujete pod pojmem Code-Behind to same co ja, kazdopadne: - vetsina web frameworku je striktne MVC - JSF + Facelets|Clay, Tapestry, Wicket umoznuji psat stare dobre HTML a pres specialni binding (atribut HTML elementu) napojit jednotlive komponenty na jejich serverove protejsky Ing. Vladislav Korecký napsal(a): Dobrý den, Jsem programátor C# a ve svém volném čase si rozšiřuji obzory a učím se Java. Nedávno jsem zkoušel napsat web aplikace a trochu mi chybělo rozdělění code od HTML. A teď k mé otázce: Existuje možnost psát JSP stránky v režimu Code-Behind ? Když jsem se koukal na videa NetBeans 6 beta 1, tak se mi zdálo že tam něco jako code-behind je, ale nejsem si jist. Předem děkuji za odpověď, Korecký
Re: Code-Behind
Mám tuto možnost i v Java ? jasne viz predchozi prispevky ;-) Pokud ano můžete mi prosím poslat nějaký link na tutorial ? Stahnete si NetBeans s Visual Web Packem a nechtesi vytvorit sample JSF aplikaci. To je asi nejrychlejsi zpusob jak se do toho ponorit. V Jave existuje velke mnozstvi web frameworku viz zminovany Wicket, Tapestry a dalsi, takze potom si staci vybrat podle osobni preference. Oddeleni, ktere zminijete podporuji vsechny - nektere mene a nektere vice obratne...
Re: Code-Behind
Tak kdyz uz rozjizdime ten flame, pak bych jako jednoduchy a velmi produktivni framerk doporucil Tapetsry 5 :-)) Jozef Babjak napsal(a): Pokud ano můžete mi prosím poslat nějaký link na tutorial ? Stahnete si NetBeans s Visual Web Packem a nechtesi vytvorit sample JSF aplikaci. To je asi nejrychlejsi zpusob jak se do toho ponorit. V Jave ^-- No, neviem, ci JSF je najvhodnejsi starting point pre niekoho, kto sa potrebuje zoznamit vobec s fungovanim MVC webovych frameworkov zalozenych na Jave. Hlasoval by som za uz vyssie zmieneny Stripes. J. -- Jiří Mareš (mailto:[EMAIL PROTECTED]) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic
Re: Code-Behind
Jiri Mares wrote: Tak kdyz uz rozjizdime ten flame, pak bych jako jednoduchy a velmi produktivni framerk doporucil Tapetsry 5 :-)) Tak si to rozdame na ferovku. Google fight :-) http://www.googlefight.com/index.php?lang=en_GBword1=stripes+web+frameworkword2=tapestry+5+web+framework Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 -- smime.p7s Description: S/MIME Cryptographic Signature
Re: Code-Behind
je to vhodne, protoze to ma IMHO silnou podporu v IDE a to je podle me velice dulezite ze zacatku. Navic filozofie Web Packu je podobna ^-- Silna podpora v IDE? Ano, to je presne to, co NESMIE mat zaciatocnik, ktory potrebuje najskor pochopit, co presne musi implementovat, konfigurovat, ako to prelozit a ako to deploynut. Ked vsetko toto vie urobit rucne, moze pouzit vykonnu podporut v IDE aby robil veci rychlejsie a nezatazoval sa reziou frameworku. Ak mu polovicu veci skryjete za IDE, tak ten framework nikdy nepochopi. J.
RE: Code-Behind
Dekuji za skvelou formulaci, do kamene tesat! Osobne bych veskera klikatka zakazal, aplikace by byly hned hezci :-)) Mirek -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jozef Babjak Sent: Thursday, October 25, 2007 10:54 AM To: Java Subject: Re: Code-Behind je to vhodne, protoze to ma IMHO silnou podporu v IDE a to je podle me velice dulezite ze zacatku. Navic filozofie Web Packu je podobna ^-- Silna podpora v IDE? Ano, to je presne to, co NESMIE mat zaciatocnik, ktory potrebuje najskor pochopit, co presne musi implementovat, konfigurovat, ako to prelozit a ako to deploynut. Ked vsetko toto vie urobit rucne, moze pouzit vykonnu podporut v IDE aby robil veci rychlejsie a nezatazoval sa reziou frameworku. Ak mu polovicu veci skryjete za IDE, tak ten framework nikdy nepochopi. J.
Re: Code-Behind
Osobne bych veskera klikatka zakazal, aplikace by byly hned hezci :-)) ^-- Silna podpora v IDE? Ano, to je presne to, co NESMIE mat zaciatocnik, ktory potrebuje najskor pochopit, co presne musi implementovat, konfigurovat, ako to prelozit a ako to deploynut. Ked vsetko toto vie urobit rucne, moze pouzit vykonnu podporut v IDE aby robil veci rychlejsie a nezatazoval sa reziou frameworku. Ak mu polovicu veci skryjete za IDE, tak ten framework nikdy nepochopi. ma absolutne opacny nazor. Zacatecnik by mel jit tou nejsnazsi cestou k cili (to muze byt treba hello world aplikace nebo jednoduchy formular). Az tam dojde, mel by se zacit zajimat o sirsi kontext. Kdyz tohle vsechno pobere, muze klidne zahodit vsechna klikaci udelatka a psat to rucne. Je nerozvazne odsuzovat klikatka jenom z toho duvodu, ze je nekdo muze spatne pouzit. K stejnemu zneuziti muze dojit i v pripade, ze clovek danou vec nepochopi. Muj nazor je, ze do rukou zacatecniku patri silne nastroje. Zrno od plev se oddeli pozdeji... -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: Code-Behind
Ahoj, na klikatka nemam vyhraneny nazor zda ano nebo ne, ale nepouzivam je ... Spis mam problem s tim, ze zpristupnuji programovani lidem, kteri by radeji programovat nemeli a to me nevadi dokud se me to netyka, jakmile mi neco podobneho prijde do cesty, vrazda je malo :-))) Jirka Roman Pichlik napsal(a): Osobne bych veskera klikatka zakazal, aplikace by byly hned hezci :-)) ^-- Silna podpora v IDE? Ano, to je presne to, co NESMIE mat zaciatocnik, ktory potrebuje najskor pochopit, co presne musi implementovat, konfigurovat, ako to prelozit a ako to deploynut. Ked vsetko toto vie urobit rucne, moze pouzit vykonnu podporut v IDE aby robil veci rychlejsie a nezatazoval sa reziou frameworku. Ak mu polovicu veci skryjete za IDE, tak ten framework nikdy nepochopi. ma absolutne opacny nazor. Zacatecnik by mel jit tou nejsnazsi cestou k cili (to muze byt treba hello world aplikace nebo jednoduchy formular). Az tam dojde, mel by se zacit zajimat o sirsi kontext. Kdyz tohle vsechno pobere, muze klidne zahodit vsechna klikaci udelatka a psat to rucne. Je nerozvazne odsuzovat klikatka jenom z toho duvodu, ze je nekdo muze spatne pouzit. K stejnemu zneuziti muze dojit i v pripade, ze clovek danou vec nepochopi. Muj nazor je, ze do rukou zacatecniku patri silne nastroje. Zrno od plev se oddeli pozdeji... -- Jiří Mareš (mailto:[EMAIL PROTECTED]) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic
Re: Code-Behind
Ono Pochopit framework je relativni pojem. I ten kdo uspesne nekolik let pouziva napr. Struts ho plne nechape, respektive ho chape jen natolik, nakolik ho chapat potrebuje. Vzdyt na co by bylo dobre, aby kazdy clen teamu perfektne rozumel tomu jak napsat treba plugin do Struts, kdyz to pro danou Struts aplikaci neni vubec plugin potreba? Kazdy slozitejsi framework plne chapou snad jen jeho autori a ani tam si nejsem uplne jisty. Ze vyvojar ma pochopit co se ma implementovat neni zavisle na tom jestli se rozhodne pouzivat IDE nebo Notepad. O deployment na cilovy server se u vetsich projektu casto stara deployment specialista a vetsine vyvojaru pak muze stacit jen Tomcat integrovany do IDE. Kazdopadne to uz jsme trochu mimo puvodni tema... Take jsem hledal jestli v Jave existuje framework co funguje na principu ASP.NET nebo Adobe Flex (tj. deklarace v XML + oddeleny code behind na obsluhu udalosti a manipulaci s komponentami), ale nic podobneho zatim v Jave neobjevil. Ostatne je zajimave, ze na stejne filozoficke bazi jako ASP.NET nebo Flex vlastne funguje i stare dobre HTML+DOM+JavaScript. HTML je deklarace komponent a code behing je Javascript spousteny udalostmi a operujici nad DOMem. Ovsem HTML je bohuzel takovy jake je a Javascript s Javou nebo C# opravdu srovnavat nema smysl :-) Navic to cele bezi jen na klientovi. Ale zpusob vyvoje je vlastne podobny jako v ASP.NET. Jozef Babjak wrote: je to vhodne, protoze to ma IMHO silnou podporu v IDE a to je podle me velice dulezite ze zacatku. Navic filozofie Web Packu je podobna ^-- Silna podpora v IDE? Ano, to je presne to, co NESMIE mat zaciatocnik, ktory potrebuje najskor pochopit, co presne musi implementovat, konfigurovat, ako to prelozit a ako to deploynut. Ked vsetko toto vie urobit rucne, moze pouzit vykonnu podporut v IDE aby robil veci rychlejsie a nezatazoval sa reziou frameworku. Ak mu polovicu veci skryjete za IDE, tak ten framework nikdy nepochopi. J.
Re: Code-Behind
Kazdopadne to uz jsme trochu mimo puvodni tema... Take jsem hledal jestli v Jave existuje framework co funguje na principu ASP.NET nebo Adobe Flex (tj. deklarace v XML + oddeleny code behind na obsluhu udalosti a manipulaci s komponentami), ale nic podobneho zatim v Jave neobjevil. po treti, existuji - JSF+facelects|clay - Tapestry - Wicket -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: Code-Behind
Roman Pichlik wrote: Kazdopadne to uz jsme trochu mimo puvodni tema... Take jsem hledal jestli v Jave existuje framework co funguje na principu ASP.NET nebo Adobe Flex (tj. deklarace v XML + oddeleny code behind na obsluhu udalosti a manipulaci s komponentami), ale nic podobneho zatim v Jave neobjevil. po treti, existuji - JSF+facelects|clay - Tapestry - Wicket a - Stripes :-) Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 -- smime.p7s Description: S/MIME Cryptographic Signature
Re: Code-Behind
Martin Kuba napsal(a): Roman Pichlik wrote: Kazdopadne to uz jsme trochu mimo puvodni tema... Take jsem hledal jestli v Jave existuje framework co funguje na principu ASP.NET nebo Adobe Flex (tj. deklarace v XML + oddeleny code behind na obsluhu udalosti a manipulaci s komponentami), ale nic podobneho zatim v Jave neobjevil. po treti, existuji - JSF+facelects|clay - Tapestry - Wicket a - Stripes :-) a urcite nektere dalsi ;-) -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: Code-Behind
Vsem dekuji za odpovedi. Resenim je tedy pouzit Framework (viz. nize). Vim ze jste se zde preli zda klikatka ano nebo ne, ale ja bych na zacatek radeji to klikatko :-) Ktery z techto frameworku vybrat, aby byl co nejvice integrovan do NetBeans ? Roman Pichlik wrote: Martin Kuba napsal(a): Roman Pichlik wrote: Kazdopadne to uz jsme trochu mimo puvodni tema... Take jsem hledal jestli v Jave existuje framework co funguje na principu ASP.NET nebo Adobe Flex (tj. deklarace v XML + oddeleny code behind na obsluhu udalosti a manipulaci s komponentami), ale nic podobneho zatim v Jave neobjevil. po treti, existuji - JSF+facelects|clay - Tapestry - Wicket a - Stripes :-) a urcite nektere dalsi ;-)
Re: Code-Behind
U Stripes jsem nasel pekny quick start, tak treba na nem muzu osvetlit proc to neni uplne ten styl programovani na jaky je asi kolega zvykly z ASP.NET U Stripes deklaruju komponentu v JSP: stripes:text name=numberOne/ Potud fajn... Ale abych s touto komponentou mohl vubec zacit pracovat v code behind (ziskat z ni treba text) musim pro ni deklarovat v Jave bean s alespon: public double getNumberOne() { return numberOne; } public void setNumberOne(double numberOne) { this.numberOne = numberOne; } Navic se musim drzet jmenne konvence a ten bean pojmenovat CalculatorActionBean a implementovat ActionBean. To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. Calculator a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde. Od intuitivniho web frameworku bych cekal ze s komponentou numberOne budu rovnou v Jave (v code behind) pracovat takto: String text = numberOne.getText(); numberOne.setText(Franta) Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself). Petr __ Od: [EMAIL PROTECTED] Komu: Java konference@java.cz Datum: 25.10.2007 16:38 Předmět: Re: Code-Behind Roman Pichlik wrote: Kazdopadne to uz jsme trochu mimo puvodni tema... Take jsem hledal jestli v Jave existuje framework co funguje na principu ASP.NET nebo Adobe Flex (tj. deklarace v XML + oddeleny code behind na obsluhu udalosti a manipulaci s komponentami), ale nic podobneho zatim v Jave neobjevil. po treti, existuji - JSF+facelects|clay - Tapestry - Wicket a - Stripes :-) Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --
Re: Code-Behind
Petr Synek wrote: To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. Calculator a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde. Od intuitivniho web frameworku bych cekal ze s komponentou numberOne budu rovnou v Jave (v code behind) pracovat takto: String text = numberOne.getText(); numberOne.setText(Franta) Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself). Jak se koukam na code-behind na http://support.microsoft.com/kb/303247 tak ten TextBox je tam taky definovany dvakrat, jednou v ASPX: asp:textbox id=MyTextBox text=Hello World runat=server/asp:textbox a podruhe ve tride: protected System.Web.UI.WebControls.TextBox MyTextBox; Jestli .NET pristupuje k protected promennym primo, bez setXXX() a getXXX() metod, tak je to strucnejsi, ale porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy. Nevidim vyhodu toho, kdyz musim objekt nadeklarovat a pak na nem volat metodu: protected System.Web.UI.WebControls.TextBox MyTextBox; public void MyButton_Click(Object sender, EventArgs e){ MyLabel.Text = MyTextBox.Text.ToString(); } oproti tomu, kdyz nadefinuju rovnou hodnotu: private String text; public Resolution click() { label = text; text = Franta; ... } Ale jestli to moc potrebujete, staci udelat toto: public class Neco implements ActionBean{ ... public static class TextBox { private String text; public String getText() { return text; } public void setText(String s) { text = s;} } private TextBox textBox = new TextBox(); public TextBox getTextBox() { return textBox; } public Resolution click() { String text = textBox.getText(); textBox.setText(Franta); } a v JSP udelat s:text name=textBox.text / Tot vse. Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 -- smime.p7s Description: S/MIME Cryptographic Signature
Re: Code-Behind
O asp.net asi tolko: 1, Asp.net je UI komponentovo orientovane(ako swing), okrem toho obsahuje aj nevisualne komponenty, to je fajn lebo s komponentami sa dobre robi. Teda pracuje sa s komponentami a nie s nejakym hlupym HTML. Tie sa vedia renderovat rovnako v roznych prehliadacoch, viazat na data, definovat vzhlad - proste klasika, napajame na ne kontroler. 2, Asp sa mi nezda ukecane. Vela veci sa dopise do code behind po kliknuti v designeri. 3, Myslim ze code behind je v java web frameworkoch bezny(ale nie vo vsetkych) aj ked je inak implementovany. 4, getter alebo setter si moze kazdy dorobit, lenze v .net to nie je konvencia ako v jave. Totiz getter a setter je potreby iba ak v nom nieco robis alebo menis visibility. V danom pripade protected System.Web.UI.WebControls.TextBox MyTextBox; nie je potrebny. Popravde property v c# ma problem ze visibility settera sa nutne = visibility gettera. Tomas Martin Kuba wrote / napísal(a): Petr Synek wrote: To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. Calculator a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde. Od intuitivniho web frameworku bych cekal ze s komponentou numberOne budu rovnou v Jave (v code behind) pracovat takto: String text = numberOne.getText(); numberOne.setText(Franta) Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself). Jak se koukam na code-behind na http://support.microsoft.com/kb/303247 tak ten TextBox je tam taky definovany dvakrat, jednou v ASPX: asp:textbox id=MyTextBox text=Hello World runat=server/asp:textbox a podruhe ve tride: protected System.Web.UI.WebControls.TextBox MyTextBox; Jestli .NET pristupuje k protected promennym primo, bez setXXX() a getXXX() metod, tak je to strucnejsi, ale porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy. Nevidim vyhodu toho, kdyz musim objekt nadeklarovat a pak na nem volat metodu: protected System.Web.UI.WebControls.TextBox MyTextBox; public void MyButton_Click(Object sender, EventArgs e){ MyLabel.Text = MyTextBox.Text.ToString(); } oproti tomu, kdyz nadefinuju rovnou hodnotu: private String text; public Resolution click() { label = text; text = Franta; ... } Ale jestli to moc potrebujete, staci udelat toto: public class Neco implements ActionBean{ ... public static class TextBox { private String text; public String getText() { return text; } public void setText(String s) { text = s;} } private TextBox textBox = new TextBox(); public TextBox getTextBox() { return textBox; } public Resolution click() { String text = textBox.getText(); textBox.setText(Franta); } a v JSP udelat s:text name=textBox.text / Tot vse. Makub