A SpringMVC Form Tag Library könyvtárának felfedezése

1. Áttekintés

A sorozat első cikkében bemutattuk a form tag könyvtár használatát és az adatok vezérlőhöz való kötését.

Ebben a cikkben kitérünk a különféle címkékre, amelyeket a Spring MVC nyújt számunkra űrlapok létrehozása és érvényesítése.

2. A bemenet Címke

Kezdjük a bemenet címke. Ez a címke HTML-t jelenít meg bemenet címkét a kötött érték és type = 'text' alapértelmezés szerint:

A 3.1 tavasztól kezdve más HTML5-specifikus típusokat is használhat, például e-mailt, dátumot és egyebeket. Például, ha e-mail mezőt akartunk létrehozni, használhatjuk type = 'email':

Hasonlóképpen, egy dátummező létrehozásához használhatjuk type = 'date', amely sok böngészőben kompatibilisvé teszi a dátumválasztót a HTML5-tel:

3. Az Jelszó Címke

Ez a címke HTML-t jelenít meg bemenet címkézni type = 'jelszó' a kötött érték felhasználásával. Ez a HTML bevitel elfedi a mezőbe beírt értéket:

4. A textarea Címke

Ez a címke HTML-t jelenít meg textarea:

Megadhatjuk a számát sorok és oszlopok ugyanúgy HTML-t is tennénk textarea.

5. A jelölőnégyzetet és jelölőnégyzeteket Címke

A jelölőnégyzetet tag HTML-t jelenít meg bemenet címkézni type = 'jelölőnégyzet'. A tavaszi MVC űrlap-könyvtár különböző megközelítéseket kínál a jelölőnégyzetet címke, amelynek meg kell felelnie minden jelölőnégyzetet igények:

A fenti példa egy klasszikus kislemezt generál jelölőnégyzetet, val,-vel logikai érték. Ha a kötött értéket beállítjuk igaz, ez a jelölőnégyzet alapértelmezés szerint be lesz jelölve.

A következő példa több jelölőnégyzetet generál. Ebben az esetben a jelölőnégyzetet az értékeket keményen kódolják a JSP oldalon:

Madármegfigyelés: Csillagászat: Snowboard: 

Itt a kötött érték típusú sor vagy java.util.Gyűjtés:

Vonós hobbik;

A jelölőnégyzeteket címkét használnak több jelölőnégyzet megjelenítésére, ahol a jelölőnégyzet értékeket futás közben generálják:

Ahhoz, hogy előállítsuk azokat az értékeket, amelyeket egy Sor, a Lista vagy a Térkép tartalmazza az elérhető opciókat a elemeket ingatlan. Inicializálhatjuk értékeinket a vezérlőn belül:

List favouriteLanguageItem = new ArrayList (); favouriteLanguageItem.add ("Java"); favouriteLanguageItem.add ("C ++"); favouriteLanguageItem.add ("Perl");

A kötött tulajdonság általában egy gyűjtemény, így több, a felhasználó által kiválasztott értéket tartalmazhat:

FavouriteLanguage;

6. A Rádiógomb és rádiógombok Címke

Ez a címke HTML-t jelenít meg bemenet címkézni type = 'rádió':

Férfi nő: 

Egy tipikus használati minta több címke példányt is magában foglal, különböző értékekkel, ugyanazon tulajdonsághoz kötve:

privát String szex;

Akárcsak a jelölőnégyzeteket címke, az rádiógombok tag több HTML-t is megjelenít bemenet címkék type = 'rádió':

Ebben az esetben érdemes átadni a rendelkezésre álló opciókat Sor, a Lista vagy a Térkép tartalmazza az elérhető opciókat a elemeket ingatlan:

List jobItem = new ArrayList (); jobItem.add ("Teljes munkaidő"); jobItem.add ("Részidős");

7. Az válassza Címke

Ez a címke HTML-t jelenít meg válassza elem:

Ahhoz, hogy előállítsuk azokat az értékeket, amelyeket egy Sor, a Lista vagy a Térkép tartalmazza az elérhető opciókat a elemeket ingatlan. Ismét inicializálhatjuk értékeinket a vezérlőn belül:

Térkép countryItems = new LinkedHashMap (); countryItems.put ("USA", "Egyesült Államok"); countryItems.put ("IT", "Olaszország"); countryItems.put ("UK", "Egyesült Királyság"); countryItems.put ("FR", "Franciaország");

A select címke a beágyazottakat is támogatja választási lehetőség és opciók címkék.

Amíg a választási lehetőség tag egyetlen HTML-t jelenít meg választási lehetőség, a opciók címke megjeleníti a HTML listáját választási lehetőség címkék.

A opciók tag egy Sor, a Lista vagy a Térkép tartalmazza az elérhető opciókat a elemeket ingatlan, akárcsak a válassza címke:

Ha egyszerre több elemet kell kiválasztanunk, létrehozhatunk több listamezőt. Az ilyen típusú listák megjelenítéséhez egyszerűen adja hozzá a többszörös = „igaz” attribútum a válassza címke.

Itt a kötött tulajdonság egy sor vagy a java.util.Gyűjtés:

Sorolja fel a gyümölcsöt;

8. Az rejtett Címke

Ez a címke HTML-t jelenít meg bemenet címkézni type = 'rejtett' a kötött érték felhasználásával:

9. Az Hibák Címke

A terepi hibaüzeneteket a vezérlőhöz társított validátorok generálják. A Hibák címkét használhatjuk a mező hibaüzenetek megjelenítésére:

Ez hibákat jelenít meg a. Mezőben megadott mezőben pálya ingatlan. A hibaüzenetek a span címke alapértelmezés szerint a .hibákat mellékelve a pálya érték, mint a id, és opcionálisan egy CSS osztály a cssClass tulajdonság, amely felhasználható a kimenet stílusához:

A név megadása kötelező!

A hibaüzenetek alapértelmezett helyett más elemmel való csatolása span tag, megadhatjuk az előnyben részesített elemet a elem tulajdonság:

Ez a hibaüzeneteket megjeleníti az a-ban div elem:

 A név megadása kötelező! 

Amellett, hogy képesek megjeleníteni egy adott beviteli elem hibáit, megjeleníthetjük az adott oldal teljes hibalistáját (mezőtől függetlenül). Ez a helyettesítő karakter használatával érhető el *:

9.1. A Validator

Egy adott mező hibáinak megjelenítéséhez meg kell határoznunk egy érvényesítőt:

public class PersonValidator valósítja meg a Validator {@Orride public boolean support (Class clazz) {return Person.class.isAssignableFrom (clazz); } @Orride public void validate (Object obj, Errors hibák) {ValidationUtils.rejectIfEmptyOrWhitespace (hibák, "név", "kötelező.név"); }}

Ebben az esetben, ha a mező név üres, az érvényesítő visszaadja a. által azonosított hibaüzenetet kötelező.név az erőforráscsomagból.

Az erőforráscsomagot a tavasz határozza meg XML konfigurációs fájl az alábbiak szerint:

Vagy tiszta Java konfigurációs stílusban:

@Bean public MessageSource messageSource () {ResourceBundleMessageSource messageSource = új ResourceBundleMessageSource (); messageSource.setBasenames ("üzenetek"); return messageSource; }

A hibaüzenet a üzenetek.tulajdonságok fájl:

required.name = A név kötelező!

Ennek az érvényesítésnek az alkalmazásához hozzá kell adnunk egy hivatkozást a validátorra a vezérlőnkben, és meg kell hívnunk a metódust érvényesít a vezérlő metódusában, amelyet akkor hívnak meg, amikor a felhasználó benyújtja az űrlapot:

@RequestMapping (value = "/ addPerson", method = RequestMethod.POST) public String submit (@ModelAttribute ("person") Személy személy, BindingResult eredmény, ModelMap modelMap) {validator.validate (személy, eredmény); if (result.hasErrors ()) {return "personForm"; } modelMap.addAttribute ("személy", személy); return "personView"; }

9.2. JSR 303 Babellenőrzés

A 3. tavasztól kezdve használhatjuk JSR 303 (a @Érvényes annotáció) a bab validálásához. Ehhez szükségünk van a JSR303 érvényesítő keretrendszer az osztályúton. A Hibernate Validator (a referencia megvalósítás). Az alábbiakban bemutatjuk azt a függőséget, amelyet be kell építenünk a POM-ba:

 org.hibernate hibernate-validator 5.1.1.Végső 

A tavaszi MVC támogatása a JSR 303 érvényesítéshez a @Érvényes jelöléssel, a következőket kell engedélyeznünk a tavaszi konfigurációs fájlunkban:

Vagy használja a megfelelő megjegyzéseket @EnableWebMvc Java konfigurációban:

@EnableWebMvc @Configuration nyilvános osztály A ClientWebConfigJava megvalósítja a WebMvcConfigurer {// Minden webkonfiguráció ide fog menni}

Ezután meg kell jegyeznünk a vezérlő metódusát, amelyet a @Érvényes kommentár:

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

Most megjegyzéseket fűzhetünk az entitás tulajdonságához, hogy a hibernált ellenőrző kommentárral érvényesítsük:

@NotEmpty private String jelszó;

Alapértelmezés szerint ez a megjegyzés megjelenik „Nem lehet üres” ha a jelszó beviteli mezőjét üresen hagyjuk.

Az alapértelmezett hibaüzenetet felülírhatjuk, ha egy tulajdonságot hozunk létre a validátor példában meghatározott erőforráscsomagban. Az üzenet kulcsa követi a szabályt AnnotationName.entity.fieldname:

NotEmpty.person.password = Jelszó szükséges!

10. Következtetés

Ebben az oktatóanyagban megvizsgáltuk azokat a különféle címkéket, amelyeket a Spring biztosít az űrlapokkal való munkához.

Megnéztük az ellenőrzési hibák megjelenítésének címkéjét és az egyedi hibaüzenetek megjelenítéséhez szükséges konfigurációt is.

Az összes fenti példa megtalálható egy GitHub projektben. Ez egy Eclipse-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.

Amikor a projekt helyi szinten fut, az űrlappélda a következő címen érhető el:

// localhost: 8080 / spring-mvc-xml / fő


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