[Java lista] JSF alapprobléma
Keresztes József
jkeresztes at vati.hu
2007. Nov. 8., Cs, 00:06:01 CET
Sziasztok !
Mivel több JSF verzióval, több fejlesztőeszközzel is kipróbáltam a dolgot, de egyik faces-config.xml -lel sem működik, mindegy melyiket másolom.
Amúgy a fura az hogy mivel kicsit már beleástam a JSF működésébe, érthetetlen ez a működés ugyanis: egy input mező mögött egy UIInput húzódik meg (a view egy eleme). A felhasználó submit-ol, ekkor az érték az UIInput "submitted value"-ba kerül. Amennyiben pedig a conversion és a validation is sikeres akkor a "local value" is megkapja a megfelelő tartalmat. Jelen esetünkben egy null kerül be mint submitted value. Namost, ha a form legalább 1 eleménél konverziós vagy validációs hiba lép fel a JSF-nek kutya kötelessége lenne a submitted value-ből visszamásolni a form mezőjébe az értéket hogy a felhasználó javíthassa. Ez működik is ha a bean-ben egy String típusú elemre hivatkozunk, működik ha Integer a típus de a mezőben van bármilyen tartalom, de ha a mezőből kiürítette az adatot a user és a form nem valid, a JSF ezt a mezőt a bean-ből tölti fel. Miért ???
Illetve ha required="true" van a mezőre akkor nem nyúl a bean-hez. (Mert az már tényleg vicces lenne hogy egy üres mezőre kiírja hogy required, de közben beletöltene egy numerikus adatot).
Ha nem jól tudom a működést, javítsatok ki !
Ha ezen nem lehet segíteni akkor mi a teendő ?
1. A bean-ben minden elem String, nem használok Integer-t, Date-t,...
2. Sosem használok session-scope bean-eket, mert ilyenkor a háttérben
(az űrlap elküldésekor) nincs bean amiből elő tudna szedni adatot.
3. Szivatom a felhasználót, ez így működik és kész.
Szerintem egyik sem normális megoldás a háromból.
A faces-config.xml:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd <http://java.sun.com/dtd/web-facesconfig_1_1.dtd> ">
<faces-config>
<!-- navigations -->
<navigation-rule>
<navigation-case>
<from-outcome>ok</from-outcome>
<to-view-id>/ok.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-outcome>valid_feladat</from-outcome>
<to-view-id>/valid_feladat.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<!-- beans -->
<managed-bean>
<managed-bean-name>bean</managed-bean-name>
<managed-bean-class>main.Bean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
________________________________
Feladó: javalist-bounces at javagrund.hu meghatalmazó: Andras Dobrosi
Küldve: 07-11-07, Sze 17:35
Címzett: javalist at javagrund.hu
Tárgy: Re: [Java lista] JSF alapprobléma
Szia Joe!
Megmutatnad a faces-config.xml-ed?
Udv.,
Andris
On Nov 7, 2007 4:39 PM, Keresztes József <jkeresztes at vati.hu> wrote:
Sziasztok !
Mostanában elkezdtem foglalkozni JavaServer Faces-zel. Össze is dobtam egy mini alkalmazást, és aztán beleütköztem egy alapvető problémába, amire azt hittem hogy bug, de kiderült hogy az 1.1 és az 1.2 is így működik. Egyszerűen nem akarom elhinni hogy ezt így akarták a JSF fejlesztői !
Arról van szó hogy ha egy űrlapot hibásan töltök ki akkor a submit gomb után VÁLTOZATLANUL kéne visszakapnom az űrlapot, és a mezők mellé/alá a hibaüzeneteket.
De ez nem így működik, egyes mezők tartalma felülíródik. A felhasználó miért nem azt kapja vissza amit begépelt ?
A jsp lapon:
<h:inputText value="#{bean.field1}" />
<h:inputText value="#{bean.field2}" required="true" />
A hozzátartozó session-scope bean-ben pedig field1, és field2 típusa is Integer,
és a bean konstruktora töltse fel mindkét mezőt egy nem null értékkel.
Amikor a jsp lap bejön akkor ugye mindkét mezőben látom az értéket. Most kitörlöm mindkét mezőt, lenyomom a submitot, a field2-re jön a hibaüzenet és a field1-be pedig visszatölti a bean-ből egy régi tartalmat. Di miért ? Miért vágja felül a user által megadott (üres) tartalmat ? Itt az alapműködés sérül.
A kérdésemet más fórumon is feltettem, értelmes választ nem kaptam, gondoltam hátha van köztetek aki JSF-fel foglalkozik, ebbe az alapproblémába bele kellett hogy ütközzön.
Üdv, Joe
_______________________________________________
Javalist mailing list
Javalist at javagrund.hu
http://javagrund.hu/mailman/listinfo/javalist
--------- következő rész ---------
Egy nem text típusú csatolt állomány át lett konvertálva...
Név: nem elérhető
Típus: application/ms-tnef
Méret: 9126 bytes
Leírás: nem elérhető
Url : http://javagrund.hu/pipermail/javalist/attachments/20071108/986857db/attachment-0001.bin
További információk a(z) Javalist levelezőlistáról