Rafal
M.
Software Engineer,
Monachium
Temat: Problemy z formularzami w JSF
Witajcie,mam aplikacje w JSF (a dokladnie w MyFaces) + springframwork + hibernate.
Jest to bardzo prosta aplikacja, mianowicie jest lista rekordow. Jak klikne w ktorys rekord (lub wcisne przycisk NOWY) to mam formularz gdzie moge dodac nowy/modyfikowac istniejace rekordy. Po nacisnieciu ZAPISZ zapisuje zmiany do bazy danych i przechodzi spowrotem do listy.
Czasami (wzglednie rzadko) gdy nacisnie uzytownik ZAPISZ to zamiast zapisac i przejsc to laduje znowu w tym samym formularzu.
Jezeli dodaje nowy rekord to widze na nowo pusty formularz.
Jezeli modyfikuje isteniajcy to widze formularz ze "starymi" danymi (bez moim korektur).
Nie ma zadnego bledu ani wyjatku w logach.
Program jest mniej wiecej zbudowany w nastepujacy sposob:
ListBean - bean JSFowski, ktory zajmuje sie wyswietleniem listy rekordow.
ArticleBean - bean JSFowski, ktory zajmuje sie pojedynczym artykulem (rekordem). Tutaj zajmuje sie metoda action ZAPISZ
Gdy wyswietlamy rekord to wywolywane sa oba bean'y. Gdy nacisniemy na ZAPISZ to czasami zamiast wywolac akcje ZAPISZ to wywoluje tylko ListBean.
Podczas wywolywania tego beana to:
getQueryString(): null
getRequestURI(): /raport/article.html
getRequestURL(): http://blablabla.pl/raport/article.html
normalnie gdy wywoluje artykul to w QueryString musza byc pewne parametry. Natomiast tutaj ich nie ma.
Ciekawostka jest to, ze gdy jest to edytowanie istniejacego artykulu to pojawia sie jego "stara wersja" tj. bez naszych korektow.
Wyglada na to, ze JSF nie wywoluje akcji i cos zle wywoluje beany. Analizowalem kod dosc dokladnie ale nic nie znalazlem.
Probowalem z action oraz actionListener - bez rezultatu.
Niestety blad pojawia sie srednio 2-3 razy w tygodniu i nie udalo mi sie go zreprododukowac.
Niektre JARy, ktore uzywam:
el-api-1.0.jar
el-ri-1.0.jar
hibernate-3.2.1.ga.jar
jsf-facelets-1.1.11.jar
myfaces-api-1.1.3.jar
myfaces-impl-1.1.3.jar
servlet-api-2.4.jar
spring-2.0-rc2.jar
tomahawk-1.1.3.jar
Czy ktos ma pojecie co to moze byc ?
Pozdrawiam,
Rafal