Grupa MagazynyInternetowe
Online: 906Nadszedł czas na coś bardziej złożonego. Twoja aplikacja przywita cię z imienia i nazwiska. Wystarczy, że w tym celu podasz jej te dane, wypełniając odpowiedni formularz. Zasada działania będzie następująca:
Na początku utwórz nowy katalog na kod aplikacji, a następnie rozpakuj w nim plik struts-blank-1.3.5.war, tak jak robiłeś to przy wcześniejszym przykładzie.
Tym razem aplikacja będzie się składała z dwóch klas. Pierwsza z nich będzie odpowiadała za przechowywanie oraz sprawdzanie informacji o użytkowniku na potrzeby akcji. Klasa taka dziedziczy po klasie ActionForm i zawsze posiada przynajmniej dwie metody - validate oraz reset.
Mają one za zadanie sprawdzenie poprawności wprowadzonych danych oraz czyszczenie tych danych. Dodatkowo klasa ta musi zawierać pola z wartościami, które użytkownik wprowadza za pośrednictwem formularza. Nie możesz zapomnieć o stworzeniu dla każdego pola odpowiedniego settera oraz gettera - zgodnie z zasadą działania beanów:
Listing zwinięty - 36 linii
Najważniejsze i wymagające w związku z tym szerszego wyjaśnienia metody to oczywiście reset oraz validate. Pierwsza z nich ustawia pola klasy na wartości domyślne - w tym przypadku na null. Metoda validate natomiast odpowiada za sprawdzenie poprawności danych wprowadzonych do formularza przez użytkownika aplikacji. W tym przypadku sprawdzanie poprawności jest bardzo proste.
Jeśli użytkownik wpisał cokolwiek do pól formularza, uznajemy, że podał on swoje dane. W przeciwnym razie zgłaszamy błąd (obcinamy z lewej i z prawej strony tekst z białych znaków - czyli w tym przypadku ze spacji i tabulatorów - a następnie porównujemy to, co zostało, z pustym napisem).
Jak widzisz, metoda validate zwraca obiekt klasy ActionErrors. Klasa ta jest kolekcją przechowującą informację o błędach. Każdy ewentualny błąd możesz dodać do kolekcji, korzystając z metody add:
errors.add("firstName", new Action-Message("userInformation.firstName.problem"));
Metoda ta przyjmuje dwa parametry: nazwę pola klasy zawierającego niepoprawną wartość oraz obiekt klasy ActionMessage z informacji o błędzie. Informacja o błędzie jest kluczem do informacji zapisanej w pliku zasobów aplikacji.
Dodajmy więc stosowne informacje do pliku WEB-INFsrcjavaMessageResources.properties:
1. userInformation.firstName.problem=Podaj imie 2. userInformation.lastName.problem=Podaj nazwisko
Na końcu metody validate musisz zwrócić obiekt kolekcji ApplicationErrors, czy to pusty, czy zawierający informacje o błędach:
return errors:
Druga klasa tej aplikacji będzie identyczna z klasą poprzednio opisanej akcji HelloWorldAction. Zmień tylko jej nazwę na HelloAction. Gdy wszystkie klasy są już gotowe, czas na odpowiednie skonfigurowanie całości. W pliku struts-conf.xml, w sekcji <form-beans> dodaj następujące linie:
<form-bean name="userInformationForm"type="hello.UserInformationForm"/>
oraz konfigurację twojej nowej akcji w sekcji <action-mappings>:
1. <action path="/hello" type="hello.HelloAction" name="userInformation-Form" input="/pages/userInformation.jsp" attribute="user"> 2. <forward name="hello" path="/pages/hello.jsp"/> 3. </action>
Jak widzisz, konfiguracja akcji różni się nieco od tej, z którą miałeś do czynienia przy omawianiu poprzedniego przykładu. Najpierw za pomocą znacznika <form-bean> łączymy nazwę userInformationFrom z klasą hello. UserInformationFrom.
Następnie w konfiguracji akcji ustalamy stronę JSP - userInformation.jsp - która ma służyć do wprowadzania danych przez użytkownika. To ona będzie się pojawiała w przeglądarce w pierwszej kolejności. Następnie za pomocą parametru name łączymy naszą akcję z klasą hello.UserInformationForm. Wykorzystujemy tu form-beana zdefiniowanego wcześniej.
To ona będzie sprawdzała poprawność danych wprowadzonych przez użytkownika na stronie userInformation.jsp i ona również będzie odpowiadała za wyświetlanie tej strony (z odpowiednimi informacjami o błędach) aż do czasu, gdy użytkownik wprowadzi poprawne dane, czyli takie, które zostaną zaakceptowane przez metodę validate.
Powiązane publikacje
Komentarzy: 1
Hmm jeszcze przedchwila nie mialem zielonego pojecia co to struts za to znalem JSP.
Artykuły tego autora:
PHP zdobył przed laty popularność jako język skryptowy do tworzenia stron internetowych. Wzięła się ona z pewnością stąd, że jeszcze kilka lat temu nie było alternatywy dla szybkiego, prostego i dostosowanego do potrzeb WWW języka. Dziś jest inaczej. Prezentujemy języki i technologie, które również powstały z myślą o programowaniu webowym.
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: