Ahojte
vospolok,
je to trocha dlhšie,
ale ak niekto poznáte BEA alebo BEEHIVE, please...
Nevedel by mi niekto
poradiť s BEA WebLogic Workshopom (nadstavba nad Struts) v takejto
veci:
Mám formulár, ktorý
má štandardnú Struts metódu validate(), ktorá keď nájde chybu,
vloží ju do klasickej Struts ActionErrors a BEA má na to JSP
tag <netui:errors/>, ktorý to vypíše do stránky výsledku,
pričom hodnoty formulára sa tiež normálne dosadia do výsledku. Toto je
fajn.
Ďalej je možnosť
v BEA-ckom súbore *.jpf volať nejakú bussiness logiku a v
prípade chyby tú chybu zobraziť pomocou JSP tagu
<netui:exceptions/> tiež na stránke výsledku. Tiež
fajn.
V praxi potrebujem
samozrejme volať najprv validáciu vstupných hodnôt a ak sú v poriadku
zavolať nejaké bussiness metódy. Ak jedno alebo druhé neprešlo, vypísať
užívateľovi hlášku. Ak v JSP stránke použijem
<netui:errors/> aj
<netui:exceptions/>, pri chybe validátora je to O.K.,
pretože <netui:exceptions/> je prázdna, ale ak vznikne
výnimka v bussiness metóde, vypíše sa mi
<netui:exceptions/>, ako má, ale aj
<netui:errors/> - a táto dokonca bez chybovej hlášky,
pretože má prázdny kľúč do resource súboru s hláškami (nehľadiac na to, že v
mojom resource ani nemôžu byť hlášky z bussiness metód, lebo je to iná vrstva).
Jedno riešenie je
nepoužívať <netui:errors/> ale
<netui:error> tak ako sa má, ale to by som výpis chybovej
hlášky musel dávať osobitne ku každému fieldu, čo sa mi
nechce.
Ešte je samozrejme
možnosť na najnižšej úrovni, t.j. nepoužívať
<netui:errors/> a
<netui:exceptions/>, ale ručne zisťovať argumenty
requestu org.apache.struts.action.ERROR a
org.apache.struts.action.EXCEPTION, a parsovať ich obsah a
vypísať užívateľovi, lenže mi pripadá, že by to predsa mohlo ísť
jednoduchšie.
Neviete niekto
ako?
Rastislav "Bedo"
Siekel
Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail : <[EMAIL PROTECTED]>
Tel : 041/562 54 91
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail : <[EMAIL PROTECTED]>
Tel : 041/562 54 91
Fax : 041/562 54
97
Mobil : 0905 34 00 20
Mobil : 0905 34 00 20
