Starší komentáře ke článku: Jakarta Struts - akce a formuláře
Zpět na článek | Úvodní stránka Interval.cz
 
Datum vložení: 29.1.2003 1:44:02
na vikend ked sa na to pozriem lepsie....
 
Datum vložení: 29.1.2003 8:16:48
Minule jsem sice kibicoval cosi o xml a xsl, ale vcera se mi do ruky dostal novy Oracle magazin a  tam je Struts venovano celkem velke misto ba co vic Oracle  tuto technologii vychvaluje jak muze. 
 Clanek se mi libi ve spojeni stim co jsem si precetl minule, dnes a vcera v magazinu se mi Struts zacina zamlouvat asi mu budu venovat par hodin studia :-), samozrejme se taky tesim na dalsi clanky, jen vice a houst. 
 
Datum vložení: 29.1.2003 10:25:41
Dobry clanek, tesim se na pokracovani. 
 Prave neco takoveho jsem hledal. 
  
 dekuji. 
 
Datum vložení: 29.1.2003 11:33:03
Do kodu RegistrationAction zverejneho v clanku se mi vloudily dva preklepy: 
  
 1, tato trida - jak je v textu uvedeno - opravdu extenduje org.apache.struts.action.Action, tedy jeji spravna deklarace je 
 public class RegistrationAction extends Action { 
  
 2, metoda execute samozrejme nevraci ten syntakticky nesmysl, co je zminen v clanku, spravne ma na poslednim radku byt 
 return mapping.findForward ("success"); 
 
Datum vložení: 29.1.2003 14:01:38
A jeste jedna oprava: 
  
 V treti kapitole (o akcich) pisu na zacatku druheho odstavce: 
  
 <I>"Rozhraní Action nám předepisuje jednu jedinou metodu - execute"</I> 
  
 Za tento ne preklep, ale vysloveny blabol se obzvlast omlouvam, nebot: 
 - Action (jak je zrejme i z ukazek kodu) neni rozhrani, nybrz trida 
 - metoda execute neni "predepsana" ve smyslu rozhrani ci abtraktni metody z duvodu zpetne kompatibility. To nic ale nemeni na tom, ze aby nase akce byla co k cemu, meli bychom tuto metodu implementovat. 
  
 Nastesti aspon hruby smysl je stejny, doufam tedy, ze vas tento omyl prilis nezmatl. :) 
 
 
Datum vložení: 30.1.2003 15:27:31
Mal by som jednu otazku ohladom mapovania akcii (<action-mappings>) v subore struts-config.xml. 
 Vie mi niekto vysvetlit, aky je rozdiel medzi <I>attribute</I> a <I>name</I> v sekcii action ? Pokial viem, tak oboje hovori o tom, aky form bean sa pouzije pri tejto akcii (pouzije sa class definovany v sekcii Form Bean Definition v struts-config.xml), ale nie je mi jasne, kedy pouzit <I>attribute=mojForm</I> a kedy pouzit <I>name=mojForm</I>. 
 Vdaka. 
 
Datum vložení: 30.1.2003 15:40:18
Parametr <I>name</I> se primarne odkazuje na formular definovany vyse v sekci <I>form-beans</I>. 
 Druhotny efekt pouziti tohoto parametru je v tom, ze se toto jmeno pouzije i pro ulozeni formulare do prisluneho scope. 
  
 Pokud se tedy chcete odkazat na formular definovany v <I>form-beans</I> pod jmenem <I>XY</I>, ale z nejakych duvodu prislusnou beanu potrebujete ukladat pod jmenem jinym, pouzijte parametru <I>attribute</I>. 
 
Datum vložení: 30.1.2003 16:12:40
...za odpoved. V Struts len zacinam. 
 Takze ak som spravne pochopil, ak ak pouzijem <I>name</I>, tak pod tymto menom sa mi bean ulozi bud do session, alebo do request (podla parametru scope). Automaticky ? Nie je potrebne to naprogramovat v prislisnej xxxAction ? 
 Ak ale pouzijem <I>attribute</I>, bean sa neulozi pod tymto menom v prisl. scope, ale musim zabezpecit sam jeho ulozenie ? 
 Neviem, ci sa vyjadrujem dost zrozumitelne, snazim sa prenikat do Struts a prave rozoberam priklad, ktory je zahrnuty v distribucii Struts (struts-example) a nasiel som tu nejake nezrovnalosti... 
  
 PS: Inak, clanok je velmi dobry, uz sa tesim na pokracovanie. 
 
Datum vložení: 30.1.2003 16:18:33
At pouzijete <I>name</I> nebo <I>attribute</I>, v obou pripadech se vam form bean ulozi <B>automaticky</B> do prislusneho scope. 
  
 Btw v obou pripadech se k tomuto jmenu muzete v <I>execute</I> metode prislusne akce dostat pomoci volani <I>mapping.getAttribute()</I>. 
 
Datum vložení: 30.1.2003 16:37:44
Takze skusim priklad: 
 . 
 . 
 . 
 <!-- Registration form bean --> 
 <form-bean 
   name="registrationForm" 
     type="org.apache.struts.webapp.example.RegistrationForm"/> 
 . 
 . 
 . 
 <!-- Edit user registration --> 
 <action 
   path="/editRegistration" 
   type="org.apache.struts.webapp.example.EditRegistrationAction" 
   attribute="registrationForm" 
   scope="request" 
   validate="false"> 
   <forward name="success"       path="/registration.jsp"/> 
 </action> 
  
 <!-- Save user registration --> 
 <action 
   path="/saveRegistration" 
   type="org.apache.struts.webapp.example.SaveRegistrationAction" 
   name="registrationForm" 
   scope="request" 
   input="registration"/> 
  
 Toto je cast struts-config.xml z prikladu struts-example. Nie je mi jasne, preco je raz name=... a raz attribute=... 
 Ale mozno na to idem zo zlej strany... :-) No nic, asi si to necham lepsie prejst hlavou. 
 Kazdopadne vdaka za Vas cas. 
 M. 
 
Datum vložení: 30.1.2003 17:04:59
Kdyz se na ten priklad podivate podrobneji, vsimnete si, ze EditRegistrationAction nezpracovava zadny formular. Proto neni nutne, aby Struts pred volanim teto akce vytvarely z request parametru instanci prislusne beany (k cemuz je parametr <I>name</I> nutny). 
  
 Tato akce pouze vytvari vlastni instanci RegistrationForm, a jejim vysledkem je vlastne jen zobrazeni predvyplneneho formulare. 
  
 Bylo by samozrejme mozne pouzit i pouze <I>name</I>, ale bylo by to zbytecne - jen by se pred volanim EditRegistrationAction zbytecne instanciovala RegistrationForm. Proto se autori prikladu spokojili s pouhym <I>attribute</I>, aby ta akce vedela, pod jakym jmenem ma onen formular ulozit do prislusneho scope. 
 
Datum vložení: 30.1.2003 17:10:22
OK, vdaka za vysvetlenie !
 
Datum vložení: 3.4.2003 20:28:27
Nějak se mi nedaří stáhnout příklad. Má někdo podobný problém? Pokud ano a povedlo se Vám jej vyřešit prosím o radu...
 
Datum vložení: 7.1.2005 15:31:27
stejny problem...
 
Datum vložení: 4.2.2005 22:16:06
Stejny problem..a vubec, jak ctu ty starsi clanky(jsp apodobne), tak zadny ukazkovy priklad atd. se mi nepodarilo stahnout/podivat se na nej na web (vsechno odkazy mimo interval.cz)..nechtela by redakce tyhle veci presunout na interval.cz a upravit odkazy?
 
Datum vložení: 4.2.2005 22:54:39
Žádný strach, redakce o tom ví, redakce na tom pracuje. Nejde ale všechno okamžitě - není snadné ukočírovat tolik různých technologií na jednom webu ;-)
 
Datum vložení: 19.4.2006 14:50:56
Rok a neco ubehl a situace je porad stejna :-( Nikdo redakci interval.cz nenuti k tomu, at ma na svem serveru dostupne vsechny technologie (a fungovaly tak vsechny odkazy na vyzkouseni). Je ale slusnosti redakce poskytnout svym redaktorum a autorum clanku vlastni FTP server, kde mohou ruzne soubory (ukazky a zejmena baliky zdrojovych kodu) ulozit. To si myslim neni az tak velky problem. Pak by se serialy nehemzily tolika nefunkcnimi odkazy :-(
 
Datum vložení: 19.4.2006 15:03:51
Nikdo autory nedonutí k tomu, aby redakci poskytli původní podklady, které hostovali či vystavovali na svých webech. Vše ostatní, co má redakce k dispozici na svých systémech, je bez problémů dostupné a většinou i funkční, nejedná-li se o ukázku nějaké již neexistující technologie...
 
Datum vložení: 17.5.2003 13:43:44
Zajimala by mne moznost pouzivat Hibernate ve spolupraci se Struts. Je to zajimave reseni, ci zbytecnost? Teziste me aplikace je v praci s databazi, proto by mne zajimalo, ci staci nastroje obsazene ve Struts, nebo je Hibernate pro dataovou persistenci o tolik silnejsi nastroj, ze se vyplati vrhnout se na studium (mimochodem velmi dukladneho) manualu. Diky za reakce.
 
Datum vložení: 18.5.2003 16:34:55
Predevsim  je to podle mne nesmyslna otazka. 
 Neco, jako kdybyste se ptal, jestli jde pouzivat Struts s EJB. Nebo jestli je možné mít v jedné kanceláři lampu a židli. 
  
 Ano, jde to a urcite to neni spatny napad, ale vzhledem k tomu, ze to jsou svym zamerenim zcela mimobezne technologie, neni prakticky o cem psat.  
  
 Proste pokud umite pouzivat Hibernate (byt ne zrovna dohromady se Struts), a pokud umite pouzivat Struts (byt ne zrovna dohromady s Hibernate), pak umite  i pouzivat Hibernate ve spolupraci se Struts. 
 
Datum vložení: 17.5.2003 13:45:52
Planujete neco takoveho zminit v dalsich dilech serialu?
 
Datum vložení: 28.5.2003 11:06:09
Rozhodně neplánuji, nic takového jsem nikdy nedělal a kvůli článku s tím nezačnu :-) 
  
 Navíc mi to nepřijde jako dobrý nápad už proto, že použitím něčeho jiného než JSP přijdeme o výhodu Strutsích formulářových tagů. 
 
Datum vložení: 30.5.2003 12:30:55
To je škoda ;-) Mně se to, co nabízí freemarker dost líbí, a když si čtu <a href='http://www.freemarker.org/docs/pgui_misc_servlet.html' target='_blank'>http://www.freemarker.org/docs/pgui_misc_servlet.html</a> tak se nemohu ubránit dojmu, že *.ftl nabízí hezčí formou to samé, co *.jsp. Poznamenávám, že jen teoretizuji, protože zkušenosti nemám. Dosud jsem psal v php a v javě mám za sebou jen několik servletů, db-pool atd. Nyní chci stávajíci intanetovou aplikaci napsanou v php, kde prakticky o nic jiného, než o formuláře nejde, přepsat, s hojným využitím http tunnelingu a jako vždy jsem pln obav, že prošmejdím stovky slepých uliček, což jsem už učinil i původní volbou php.
 
Datum vložení: 30.5.2003 12:45:42
OK, z toho URL soudím, že jsem FM trochu podcenil, vypadá to použitelně. 
 Nicméně opravdu se tím v dohledné době nechystám zabývat. Na druhou stranu věřím, že pokud se do toho pustíte, tak Marek Šalanda vás článek na toto téma jistě uvítá. 
 
Datum vložení: 30.5.2003 13:02:00
Nechtěl jsem vás přemlouvat, abyste začal studovat FM... :-) Což o to, pustím se do toho, ale nerad bych snižoval odbornou úroven intervalu mým článkem. :-) Mimochodem, dlouho jsem tady nebyl, a mezitím se to tu hodně zlepšilo, především vaše pojednání o Struts bych nechtěl srovnávat s tím na root.cz.
 
Datum vložení: 22.10.2003 10:53:22
Dobry den, 
 mam dotaz - je mozne mit v beanu atribut typu Date? mam nasledujici metody get a set: 
  
 private Date myDate; 
  
 public Date getMyDate() { 
     return myDate; 
 } 
  
 public void setMyDate(String date) { 
     SimpleDateFormat inputFormat = new SimpleDateFormat("dd.MM.yyyy"); 
     try { 
 	this.myDate = inputFormat.parse(date); 
     } catch(Exception e) { ... } 
 } 
  
 ve formulari mam polozku 
 <html:text property="myDate" /> 
  
 Bohuzel hodnota se do beanu nepreda a pritom neni vypsana chyba... 
 Cele funguje, pokud vubec nikde nemam Date ale vsechno jako String. 
 Dekuji za radu. 
 
Datum vložení: 22.10.2003 11:29:40
1, principálně vám samozřejmě nic nebrání mít ve form-beaně property třídy java.util.Date nebo třeba cz.firma.util.Brekeke :-) 
  
 2, problém ve vámi uváděném případu podle mne tkví v tom, že getter vrací Date, kdežto setter bere String - takhle se myslím property beany nechová 
  
 3, osobně bych přesto doporučil používat v properties formulářových bean String. Reflektuje to podstatu věci, a umožňuje Vám to při neúspěšné validaci předvyplnit formulář zadanými údaji (pokud do textboxu, jemuž odpovídá Date, zadáte "brekeke", pak se tato hodnota při konverzi do Date pochopitelně ztratí). 
 
Datum vložení: 19.3.2005 21:35:11
Stažení souboru s příkladem nechodí. Ocenil bych, kdyby si autoři nedávali příklady k sobě na web, ale dali to na interval.cz, protože tam má čtenář alespoň jistotu, že se to dá stáhnout i rok po zveřejnění článku ...
 
Datum vložení: 1.5.2005 18:01:56
Zdravím, Pracuji na projektu využívajicí struts. JSP stránky mam kodovane v utf-8. Pro získání dat z formuláře používam DynaValidatorForm. české znaky z formuláře jsou poškozeny. Pravděpodobně špatné určení znakové sady vstupu html:text... Nedovedl by mi nekdo poradit? Děkuji.
 
Datum vložení: 13.9.2005 14:50:54
Měl jsem stejný problém se stránkami ve windows-1250, nakonec jsem použil "getBytes" viz. http://www.linuxzone.cz/index.phtml?ids=2&idc=191
 
Datum vložení: 2.5.2007 12:54:19
sprav si napr. triedu: ------------------------------ package xxx; import javax.servlet.*; import java.io.IOException; public class CzechCodingFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (request.getCharacterEncoding() == null) { request.setCharacterEncoding("utf-8"); } chain.doFilter(request, response); } public void destroy() { } } -------------------------------------- do web.xml pridaj <filter> <filter-name>coding</filter-name> <filter-class>xxx.CzechCodingFilter</filter-class> </filter> - <filter-mapping> <filter-name>coding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> -------------------------------------- ak som na nic nezabudol tak by to malo fungovat
 
Datum vložení: 2.5.2007 12:57:42
tak este raz pretze to tam nie je vsetko vidiet :) sprav si napr. triedu: ------------------------------ package xxx; import javax.servlet.*; import java.io.IOException; public class CzechCodingFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if (request.getCharacterEncoding() == null) { request.setCharacterEncoding( "utf-8"); } chain.doFilter(request, response); } public void destroy() { } } -------------------------------------- do web.xml pridaj <filter> <filter-name> coding </filter-name> <filter-class> xxx.CzechCodingFilter </filter-class> </filter> <filter-mapping> <filter-name> coding </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> -------------------------------------- ak som na nic nezabudol tak by to malo fungovat
 
Datum vložení: 6.6.2007 17:14:56
nezabudol si na nic :o) funguje to dik
