struts validacja

0

Witam

Mam pytanie odnoście Struts-ów a mianowicie. Mam formatkę, do której wprowadza się dane na podstawie, ktorych ma zostać utworzyny obiekt, którego jednym z pól jest pole typy double (chodzi mi generalie o numeryczne pola). W momencie jak ktos w tym polu wpisze nie poprawna liczbe i zostanie to submittowane to nie zostanie wygenerowany żaden błąd tylko po prostu nic się nie wstawi do tego pola. Moje pytanie brzmi jak taki błąd przechwycić? Bo wolałbym, żeby user wiedział co źle zrobił niż żył w błogiej nieświadomości.

Pozdrawiam

0

ok jak zwracasz informację do użytkownika że dane zostały dodane? Wystarczy że wstawisz tam np. Map ze spisem błędów. I przy generowaniu jspa będziesz sprawdzał czy w mapie są jakieś elementy. Jak są to dajesz stosowne info.

ps. który Struts nowy czy stary?

0

struts 1.2.9 bodajże. Ale chyba się nie zrozumieliśmy, ja wszystko wiem jak je wyświetlić itd ale nie wiem, jak przechwycić i jak sprawdzić, że podano wartość, która nie jest liczbą. Np. mam sobie forma w formie mam sobie pole np. klasa Produkt, produkt ma pola nazwa, cena. Teraz tworze sobie jsp a w nim (np.. uzywając struts-layout):
<layout:text property="produkt.nazwa/>
<layout:text property="produkt.cena/>

I użytkownik wypełnia te pola i wciska przycisk czyli robi submit i teraz te dane powinny wlecieć do obiekty Produkt w formie, i wlatują, te które są poprawne, a ja nie wiem jak się dowiedzieć, które są niepoprawne o to mi chodzi.

Pozdr

0

Logika jest taka że dane odbierasz zapisujesz. Oczywiście zapis wykonujesz ty a nie automat dobrze rozumiem?

przed zapisem danych zrób:

String pole;// pobierasz pole

Character[] c = pole.toCharArray();
for(Character cc : c){
   if(!cc.isDigit()){
       // tu wstawiasz dodawanie błędu do mapy
   }
}

Należy po prostu sprawdzić czy to co idzie w request :)

0

no to wykonuje framework za pomocą metod typu "set", które znajdują się w opisanej klasie Produkt. Po to mu definuje w JSP, o jakie pole chodzi, żeby mógł z niego pobrać, jeżeli trzeba coś wyświetlić, lub do niego wstawić, jeżli trzeba coś wstawić. I w sytuacji gdy jakieś pole (input) jest odzwierciedleniem pola typu numerycznego w jakiejś klasie i jak ktoś poda wartość nienumeryczną to nie wstawia się nic, a ja chcę w jakiś sposób informację, że próbowano wpisać niepoprawną wartość, czyli albo wejść przed wywołaniem metody "set" albo nie wiem może struts taki informacje gdzieś przechowują, że np. dla pola "xxx" wystąpił błąd "yyy". Pozdrawiam

0

jeszcze słówko do przykładu, który przedstawiłeś, a co by było gdyby to pole, które teraz jest typu String było Double? Zapoznaję się właśnie z koncepcją validatora strutsowego ale nie wiem czy to będzie odpowiednie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1