Dominik
Cebula
Programista C/C++,
Delphi, PHP
Temat: c:forEach - wywołanie bean-a z argumentem
witamProszę o pomoc w JSF, link do omawianej strony:
http://code.google.com/p/dcstore/source/browse/trunk/d...
W linijce 44 mam taki kod:
<c:forEach items="${imagesWeb.getImagesURL()}" var="i">
Funkcja getImagesURL() w ManagedBean korzysta z idProduct, który jest ustawiany w linijce 43 za pomocą:
${imagesWeb.setIdProduct(p.id)}
Wcześniej próbowałem takiego wywołania:
<c:forEach items="${imagesWeb.getImagesURL(p.id)}" var="i">
Oczywiście funkcja getImagesURL() miała wtedy deklarację z argumentem, niestety w przypadku wywoałania getImagesURL() z przekazywaniem p.id jako argument zawsze w argumencie lądowała wartość 0. Dlaczego tak się działo?
Aktualnie najpierw ręcznie ustawiam property bean-a, z którego potem korzystam, ale daczego w forEach nie udało się przekazać id z obiektu p jako argument, jeżeli w linijce 31:
<h:graphicImage id="image_main" width="300" url="${imagesWeb.getCoverURL(p.id)}" />
robię dokładnie to samo i działa poprawnie?
Źródło ImagesWeb bean-a:
http://code.google.com/p/dcstore/source/browse/trunk/d...Dominik Cebula edytował(a) ten post dnia 23.01.12 o godzinie 20:31
Darek Z. --
Temat: c:forEach - wywołanie bean-a z argumentem
Dominik Cebula:
witam
Proszę o pomoc w JSF, link do omawianej strony:
http://code.google.com/p/dcstore/source/browse/trunk/d...
W linijce 44 mam taki kod:
<c:forEach items="${imagesWeb.getImagesURL()}" var="i">
Źle, wystarczy wrzucić ${imagesWeb.imagesURL} system sam zadba by wywołać getter czyli getImagesUrl;
${imagesWeb.setIdProduct(p.id)}
<c:forEach items="${imagesWeb.getImagesURL(p.id)}" [/quote]> var="i">[quote]
Ogólnie takie rzeczy robi się ew w tagach, Tworzysz własny taglib który ma jakieś argumenty i przekazujesz je wywołując np:
<mojTaglib:forEach items="${imagesWeb.imagesUrl}" id="${p.id}">
i taki taglib robi własną pętlę wykorzystując przekazane dane.
Aktualnie najpierw ręcznie ustawiam property bean-a, z którego potem korzystam, ale daczego w forEach nie udało się przekazać id z obiektu p jako argument, jeżeli w linijce 31:
<h:graphicImage id="image_main" width="300" [/quote]> url="${imagesWeb.getCoverURL(p.id)}" />[quote]
Tak się robić nie powinno, jak wcześniej wspomniałem, najlepiej stworzyć taglib, bądź skorzystać z tagów już gotowych, dostępnych w frameworku
Jak się mylę to niech mnie ktoś poprawi ;)Darek Z. edytował(a) ten post dnia 25.01.12 o godzinie 20:41
Dominik
Cebula
Programista C/C++,
Delphi, PHP
Temat: c:forEach - wywołanie bean-a z argumentem
Dziękuję za odpowiedź, mówiąc, że nie powinienem wywoływać funkcji z Managed Bean z argumentami tylko korzystać z taglib, masz na myśli to, że taka jest przyjęta konwencja, dobra praktyka w JSF czy może jest jakiś konkretny powód dla, którego nie powinienem pisać funkcji w Managed Bean z argumentami?
Darek Z. --
Temat: c:forEach - wywołanie bean-a z argumentem
Metody w managed beans mozesz pisać z argumentami, ale z tego co wiem nie wywoluje się ich w taki sposób w jaki Ty próbujesz. Od tego typu rzeczy są tagliby.
Piotr Janik drobny ciułacz
Temat: c:forEach - wywołanie bean-a z argumentem
Witajcie,A nie jest tak, że argumenty są obsługiwane od JSF2.0 ?
Już jakiś czas nie siedzę w JSF ale tak mi się coś przypomina.
Pamiętam też, że Seam dodawał swojego czasu możliwość wywoływania metod z argumentami wprost z kodu xhtml/jsf.
Można było ustawić argument poprzez f:setPropopertyActionListener, czy jakoś tak.
Dokładnie nie pamiętam.
Pozdrawiam,
Piotr
Dominik
Cebula
Programista C/C++,
Delphi, PHP
