Istraživanje knjižnice oznaka obrazaca SpringMVC-a

1. Pregled

U prvom članku ove serije predstavili smo upotrebu knjižnice oznaka obrazaca i kako povezati podatke s kontrolerom.

U ovom ćemo članku pokriti razne oznake koje nam Spring MVC nudi kako bi nam pomogli stvoriti i potvrditi obrasce.

2. The ulazni Označiti

Počet ćemo s ulazni označiti. Ova oznaka prikazuje HTML ulazni oznaka koristeći vezanu vrijednost i type = 'tekst' prema zadanim postavkama:

Počevši od Proljeća 3.1, možete koristiti druge vrste specifične za HTML5, poput e-pošte, datuma i drugih. Na primjer, ako smo željeli stvoriti polje e-pošte, možemo koristiti type = 'email':

Slično tome, za stvaranje polja s datumom možemo koristiti type = 'datum', koji će alat za odabir datuma u mnogim preglednicima učiniti kompatibilnim s HTML5:

3. The zaporka Označiti

Ova oznaka prikazuje HTML ulazni označi sa type = 'lozinka' koristeći vezanu vrijednost. Ovaj HTML ulaz maskira vrijednost upisanu u polje:

4. The textarea Označiti

Ova oznaka prikazuje HTML textarea:

Možemo odrediti broj redaka i stupaca na isti način kao i HTML textarea.

5. The potvrdni okvir i potvrdni okviri Označiti

The potvrdni okvir Oznaka prikazuje HTML ulazni označi sa type = 'potvrdni okvir'. Proljetna MVC-ova knjižnica oznaka obrazaca pruža različite pristupe potvrdni okvir oznaka koja bi trebala odgovarati svim našim potvrdni okvir potrebe:

Gornji primjer generira klasični singl potvrdni okvir, s boolean vrijednost. Ako vezanu vrijednost postavimo na pravi, ovaj će okvir potvrditi prema zadanim postavkama.

Sljedeći primjer generira više potvrdnih okvira. U ovom slučaju, potvrdni okvir vrijednosti su teško kodirane unutar JSP stranice:

Promatranje ptica: Astronomija: Snowboard: 

Ovdje je vezana vrijednost tipa niz ili java.util.Zbirka:

String [] hobiji;

Svrha potvrdni okviri Oznaka koristi se za prikazivanje više potvrdnih okvira, gdje se vrijednosti potvrdnih okvira generiraju za vrijeme izvođenja:

Da bismo generirali vrijednosti koje prosljeđujemo u Polje, a Popis ili a Karta koji sadrži dostupne opcije u predmeta imovine. Naše vrijednosti možemo inicijalizirati unutar kontrolera:

Popis favouriteLanguageItem = novi ArrayList (); favouriteLanguageItem.add ("Java"); favouriteLanguageItem.add ("C ++"); favouriteLanguageItem.add ("Perl");

Tipično je vezano svojstvo zbirka tako da može sadržavati više vrijednosti koje je korisnik odabrao:

Popis favouriteLanguage;

6. The Radio gumb i radio dugmad Označiti

Ova oznaka prikazuje HTML ulazni označi sa type = 'radio':

Muško Žensko: 

Tipični obrazac upotrebe uključivat će više instanci oznaka s različitim vrijednostima vezanim za isto svojstvo:

privatni gudački seks;

Baš kao i potvrdni okviri oznaka radio dugmad oznaka prikazuje više HTML-a ulazni oznake sa type = 'radio':

U ovom slučaju, možda ćemo htjeti dodati dostupne opcije kao Polje, a Popis ili a Karta koji sadrži dostupne opcije u predmeta svojstvo:

Popis jobItem = novi ArrayList (); jobItem.add ("Puno radno vrijeme"); jobItem.add ("Pola radnog vremena");

7. The Odaberi Označiti

Ova oznaka prikazuje HTML Odaberi element:

Da bismo generirali vrijednosti koje prosljeđujemo u Polje, a Popis ili a Karta koji sadrži dostupne opcije u predmeta imovine. Još jednom, možemo inicijalizirati svoje vrijednosti unutar kontrolera:

Mapa countryItems = novi LinkedHashMap (); countryItems.put ("SAD", "Sjedinjene Države"); countryItems.put ("IT", "Italija"); countryItems.put ("UK", "United Kingdom"); countryItems.put ("FR", "Francuska");

Oznaka select također podržava upotrebu ugniježđenih opcija i mogućnosti oznake.

Dok opcija oznaka prikazuje jedan HTML opcija, mogućnosti Oznaka prikazuje popis HTML-a opcija oznake.

The mogućnosti oznaka uzima Polje, a Popis ili a Karta koji sadrži dostupne opcije u predmeta vlasništvo, baš kao i Odaberi označiti:

Kada imamo potrebu odabrati nekoliko stavki odjednom, možemo stvoriti višestruki okvir s popisom. Da biste prikazali ovu vrstu popisa, samo dodajte multiple = "true" atribut u Odaberi označiti.

Ovdje je vezano svojstvo niz ili a java.util.Zbirka:

Navesti voće;

8. The skriven Označiti

Ova oznaka prikazuje HTML ulazni označi sa type = 'skriveno' koristeći vezanu vrijednost:

9. The Pogreške Označiti

Poruke pogrešaka na terenu generiraju validatori povezani s kontrolerom. Oznaku Pogreške možemo koristiti za prikaz tih poruka o pogreškama u polju:

Ovo će prikazati pogreške za polje navedeno u staza imovine. Poruke pogreške prikazuju se unutar raspon oznaka prema zadanim postavkama, sa .pogreške u prilogu staza vrijednost kao iskaznica, a po želji i CSS klasa iz cssClass svojstvo, koje se može koristiti za oblikovanje rezultata:

Ime je obavezno!

Da biste poruke pogrešaka zatvorili drugim elementom umjesto zadanim raspon tag, možemo odrediti željeni element unutar element atribut:

To prikazuje poruke pogreške unutar a div element:

 Ime je obavezno! 

Osim što imamo mogućnost prikazivanja pogrešaka za određeni ulazni element, možemo prikazati čitav popis pogrešaka (bez obzira na polje) za datu stranicu. To se postiže upotrebom zamjenskog znaka *:

9.1. Provjerivač

Da bismo prikazali pogreške za dano polje moramo definirati validator:

javna klasa PersonValidator implementira Validator {@Override javne logičke podrške (Class clazz) {return Person.class.isAssignableFrom (clazz); } @Override public void validate (Object obj, pogreške pogrešaka) {ValidationUtils.rejectIfEmptyOrWhitespace (pogreške, "name", "required.name"); }}

U ovom slučaju, ako polje Ime je prazno, validator vraća poruku pogreške koju je identificirao potrebno.ime iz snopa resursa.

Paket resursa definiran je u proljeće XML konfiguracijska datoteka kako slijedi:

Ili u čistom Java konfiguracijskom stilu:

@Bean public MessageSource messageSource () {ResourceBundleMessageSource messageSource = novi ResourceBundleMessageSource (); messageSource.setBasenames ("poruke"); return messageSource; }

Poruka pogreške definirana je unutar poruke.svojstva datoteka:

required.name = Ime je obavezno!

Da bismo primijenili ovu provjeru valjanosti, u naš kontroler moramo uključiti referencu na validator i pozvati metodu potvrditi u metodi kontrolera koja se poziva kada korisnik preda obrazac:

@RequestMapping (value = "/ addPerson", method = RequestMethod.POST) public String submit (@ModelAttribute ("person") Person person, BindingResult result, ModelMap modelMap) {validator.validate (person, result); if (result.hasErrors ()) {return "personForm"; } modelMap.addAttribute ("osoba", osoba); vrati "personView"; }

9.2. JSR 303 Provjera graha

Počevši od proljeća 3, možemo koristiti JSR 303 (putem @Valid anotacija) za provjeru graha. Da bismo to učinili potreban nam je a Okvir za provjeru valjanosti JSR303 na razrednoj stazi. Koristit ćemo Hibernate Validator (referentna provedba). Slijedi ovisnost koju moramo uključiti u POM:

 org.hibernate hibernate-validator 5.1.1.Finalni 

Da bi Spring MVC podržao JSR 303 provjeru valjanosti putem @Valid napomena, u našoj konfiguracijskoj datoteci Spring moramo omogućiti sljedeće:

Ili upotrijebite odgovarajuću napomenu @EnableWebMvc u Java konfiguraciji:

@EnableWebMvc @Configuration javna klasa ClientWebConfigJava implementira WebMvcConfigurer {// Sva web konfiguracija će ići ovdje}

Dalje, moramo označiti metodu kontrolera koju želimo provjeriti s @Valid napomena:

@RequestMapping (value = "/ addPerson", method = RequestMethod.POST) public String submit (@Valid @ModelAttribute ("person") Person person, BindingResult result, ModelMap modelMap) {if (result.hasErrors ()) {return " obrazac "; } modelMap.addAttribute ("osoba", osoba); vrati "personView"; }

Sada svojstvo entiteta možemo označiti da ga provjerimo napomenom hibernacijskog validatora:

@NotEmpty lozinka privatnog niza;

Prema zadanim postavkama prikazat će se ova napomena "Ne smije biti prazno" ako polje za unos lozinke ostavimo praznim.

Zadanu poruku o pogrešci možemo nadjačati stvaranjem svojstva u snopu resursa definiranom u primjeru validatora. Ključ poruke slijedi pravilo AnnotationName.entity.name polja:

NotEmpty.person.password = Potrebna je lozinka!

10. Zaključak

U ovom uputstvu istražili smo razne oznake koje Spring pruža za rad s obrascima.

Također smo pogledali oznaku za prikaz pogreške provjere valjanosti i konfiguraciju potrebnu za prikaz prilagođenih poruka pogreške.

Svi gore navedeni primjeri mogu se naći u projektu GitHub. Ovo je projekt zasnovan na Eclipseu, pa bi ga trebalo lako uvesti i pokrenuti takav kakav jest.

Kada se projekt izvodi lokalno, primjeru obrasca može se pristupiti na:

// localhost: 8080 / spring-mvc-xml / osoba


$config[zx-auto] not found$config[zx-overlay] not found