Preskúmajte knižnicu značiek SpringMVC

1. Prehľad

V prvom článku tejto série sme predstavili použitie knižnice značiek formulárov a spôsobu viazania údajov na radič.

V tomto článku sa budeme venovať rôznym značkám, ktoré nám Spring Spring poskytuje, aby sme vám pomohli vytvárať a overovať formuláre.

2. The vstup Označiť

Začneme s vstup značka. Táto značka vykresľuje kód HTML vstup tag pomocou viazanej hodnoty a type = 'text' predvolene:

Počnúc jarom 3.1 môžete používať ďalšie typy špecifické pre HTML5, napríklad e-mail, dátum a ďalšie. Napríklad, ak sme chceli vytvoriť e-mailové pole, môžeme použiť type = 'email':

Podobne môžeme na vytvorenie poľa s dátumom použiť typ = 'dátum', ktorý vykreslí výber dátumu v mnohých prehliadačoch kompatibilných s HTML5:

3. The heslo Označiť

Táto značka vykresľuje kód HTML vstup označiť pomocou typ = 'heslo' pomocou viazanej hodnoty. Tento vstup HTML maskuje hodnotu zadanú do poľa:

4. The textarea Označiť

Táto značka vykresľuje kód HTML textarea:

Môžeme určiť počet riadkov a stĺpce rovnako ako HTML textarea.

5. začiarkavacie políčko a začiarkavacie políčka Označiť

The začiarkavacie políčko značka vykreslí HTML vstup označiť pomocou type = 'začiarkavacie políčko'. Knižnica značiek jarných MVC poskytuje rôzne prístupy k začiarkavacie políčko značka, ktorá by mala spĺňať všetky naše začiarkavacie políčko potreby:

Vyššie uvedený príklad vygeneruje klasický singel začiarkavacie políčko, s boolovský hodnotu. Ak nastavíme viazanú hodnotu na pravda, toto začiarkavacie políčko bude predvolene začiarknuté.

Nasledujúci príklad generuje viac začiarkavacích políčok. V takom prípade začiarkavacie políčko hodnoty sú napevno napísané na stránke JSP:

Pozorovanie vtákov: Astronómia: Snowboarding: 

Tu je viazaná hodnota typu pole alebo java.util.Collection:

Sláčikové [] záľuby;

Účelom začiarkavacie políčka značka sa používa na vykreslenie viacerých začiarkavacích políčok, kde sa hodnoty začiarkavacieho políčka generujú za behu:

Na generovanie hodnôt, ktoré odovzdávame v Pole, a Zoznam alebo a Mapa obsahujúci dostupné možnosti v položky nehnuteľnosť. Naše hodnoty môžeme inicializovať vo vnútri radiča:

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

Viazanou vlastnosťou je zvyčajne kolekcia, takže môže obsahovať viac hodnôt vybratých používateľom:

Zoznam obľúbených jazykov;

6. tlačítko na Rádiu a rádiové tlačidlá Označiť

Táto značka vykresľuje kód HTML vstup označiť pomocou type = 'radio':

Muž žena: 

Typický vzor použitia bude zahŕňať viac inštancií značiek s rôznymi hodnotami viazanými na rovnakú vlastnosť:

súkromný strunový sex;

Rovnako ako začiarkavacie políčka značka, rádiové tlačidlá značka vykresľuje viac HTML vstup štítky s type = 'radio':

V takom prípade by sme chceli odovzdať dostupné možnosti ako Pole, a Zoznam alebo a Mapa obsahujúci dostupné možnosti v priečinku položky nehnuteľnosť:

Zoznam jobItem = new ArrayList (); jobItem.add ("na plný úväzok"); jobItem.add ("čiastočný úväzok");

7. The vyberte Označiť

Táto značka vykresľuje kód HTML vyberte element:

Na generovanie hodnôt, ktoré odovzdávame v Pole, a Zoznam alebo a Mapa obsahujúci dostupné možnosti v položky nehnuteľnosť. Opäť môžeme inicializovať naše hodnoty vo vnútri radiča:

Mapa countryItems = new LinkedHashMap (); countryItems.put ("USA", "USA"); countryItems.put ("IT", "Taliansko"); countryItems.put ("UK", "Spojené kráľovstvo"); countryItems.put ("FR", "Francúzsko");

Značka select podporuje aj použitie vnorených možnosť a možnosti značky.

Kým možnosť značka vykreslí jeden HTML možnosť, možnosti značka vykreslí zoznam HTML možnosť značky.

The možnosti značka trvá Pole, a Zoznam alebo a Mapa obsahujúci dostupné možnosti v priečinku položky majetku, rovnako ako vyberte značka:

Ak je potrebné vybrať niekoľko položiek naraz, môžeme vytvoriť viacnásobné zoznamové pole. Ak chcete tento typ zoznamu vykresliť, stačí pridať znak multiple = ”true” atribút v vyberte značka.

Tu je viazaná vlastnosť pole alebo a java.util.Collection:

Zoznam ovocia;

8. The skryté Označiť

Táto značka vykresľuje kód HTML vstup označiť pomocou type = 'skrytý' pomocou viazanej hodnoty:

9. The Chyby Označiť

Chybové správy v teréne generujú validátory spojené s kontrolórom. Na vykreslenie týchto chybových správ poľa môžeme použiť značku chyby:

Zobrazí sa chyby pre pole zadané v poli cesta nehnuteľnosť. Chybové správy sú vykreslené v rámci a rozpätie značka je predvolene nastavená na . chyby pripojený k cesta hodnota ako ida voliteľne triedu CSS z cssClass vlastnosť, ktorú je možné použiť na úpravu výstupu:

Meno je povinné!

Ak chcete vložiť chybové správy do iného prvku, ako je predvolené nastavenie rozpätie tag, môžeme určiť preferovaný prvok vo vnútri element atribút:

Toto vykreslí chybové správy v rámci a div element:

 Meno je povinné! 

Okrem toho, že máme schopnosť zobrazovať chyby pre konkrétny vstupný prvok, môžeme zobraziť celý zoznam chýb (bez ohľadu na pole) pre danú stránku. To sa dosiahne použitím zástupného znaku *:

9.1. Validátor

Aby sme zobrazili chyby pre dané pole, musíme definovať validátor:

verejná trieda PersonValidator implementuje Validátor {@Override verejné boolean podporuje (Class clazz) {návrat Person.class.isAssignableFrom (clazz); } @Override public void validate (Object obj, Errors errors) {ValidationUtils.rejectIfEmptyOrWhitespace (errors, "name", "required.name"); }}

V takom prípade, ak je pole názov je prázdne, validátor vráti chybové hlásenie identifikované znakom požadovaný.názov zo zväzku zdrojov.

Balík zdrojov je definovaný na jar XML konfiguračný súbor nasledovne:

Alebo v čistom štýle konfigurácie Java:

@Bean public MessageSource messageSource () {ResourceBundleMessageSource messageSource = nový ResourceBundleMessageSource (); messageSource.setBasenames ("správy"); návrat messageSource; }

Chybové hlásenie je definované vo vnútri správy.vlastnosti spis:

required.name = Meno je povinné!

Ak chcete použiť toto overenie, musíme do nášho kontrolóra zahrnúť odkaz na validátor a zavolať metódu potvrdiť v metóde kontrolóra, ktorá sa volá, keď užívateľ zadá formulár:

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

9.2. Validácia fazule JSR 303

Od jari 3 môžeme použiť JSR 303 (prostredníctvom @ Platné anotácia) na validáciu fazule. Na to potrebujeme Rámec validátora JSR303 na triednej ceste. Použijeme Overovač režimu dlhodobého spánku (referenčná implementácia). Nasleduje závislosť, ktorú musíme zahrnúť do POM:

 org.hibernate hibernate-validator 5.1.1.Final 

Aby jarná MVC podporovala validáciu JSR 303 cez @ Platné anotácie, musíme v našom konfiguračnom súbore Spring povoliť nasledujúce:

Alebo použite príslušnú anotáciu @EnableWebMvc v konfigurácii Java:

@EnableWebMvc @Configuration verejná trieda ClientWebConfigJava implementuje WebMvcConfigurer {// Celá webová konfigurácia sa zobrazí tu}

Ďalej musíme anotovať metódu radiča, ktorú chceme overiť pomocou @ Platné anotácia:

@RequestMapping (value = "/ addPerson", method = RequestMethod.POST) public String submit (@Valid @ModelAttribute ("person") Osoba osoba, výsledok BindingResult, ModelMap modelMap) {if (result.hasErrors ()) {návrat " personForm "; } modelMap.addAttribute ("osoba", osoba); vrátiť "personView"; }

Teraz môžeme anotovať vlastnosť entity, aby sme ju overili anotáciou validátora Hibernate:

@NotEmpty súkromné ​​reťazcové heslo;

V predvolenom nastavení sa táto anotácia zobrazí „Nemusí byť prázdny“ ak necháme pole na zadanie hesla prázdne.

Predvolenú chybovú správu môžeme prepísať vytvorením vlastnosti v balíku prostriedkov definovanom v príklade validátora. Kľúč správy sa riadi pravidlom AnnotationName.entity.fieldname:

NotEmpty.person.password = Heslo je povinné!

10. Záver

V tomto tutoriáli sme preskúmali rôzne značky, ktoré Spring poskytuje pre prácu s formulármi.

Pozreli sme sa tiež na značku pre zobrazenie chýb overenia platnosti a konfiguráciu potrebnú na zobrazenie vlastných chybových správ.

Všetky vyššie uvedené príklady nájdete v projekte GitHub. Toto je projekt založený na Eclipse, takže by malo byť ľahké ho importovať a spustiť tak, ako je.

Keď projekt beží lokálne, príklad formulára je prístupný na:

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


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