Hlavní menu
Nástroje |
WebKiv.OpenCmsValidaceVstupnichPoliFormularu HistoryShow minor edits - Show changes to output 30 June 2009, 09:21
by
- Changed lines 86-90 from:
* Metoda ''validate'' slouží k vlastní validaci formuláře. Pravidla pro validaci určuje programátor. Najde-li validátor nevalidní hodnotu ve formuláři, musí nad objektem errors zavolat metodu ''rejectError()'', kde první parametr je jméno vlastnosti validovaného objektu, ke kterému náleží daná chyba a druhý parametr je klíč, pod kterým se má hledat lokalizovaná zpráva v messages_xx.properties, která se následně zobrazí na jsp stránce formuláře. to:
* Metoda ''validate'' slouží k vlastní validaci formuláře. Pravidla pro validaci určuje programátor. Najde-li validátor nevalidní hodnotu ve formuláři, musí nad objektem errors zavolat metodu ''rejectError()'', kde první parametr je jméno vlastnosti validovaného objektu, ke kterému náleží daná chyba a druhý parametr je klíč, pod kterým se má hledat lokalizovaná zpráva v messages_xx.properties, která se následně zobrazí na jsp stránce formuláře. ---- Zpět na FrameworkyProWebKiv 29 June 2009, 23:13
by
- Added lines 1-86:
!Validace vstupních polí Máme-li v modulu formulář, u kterého je požadavek na validaci jednoho nebo více vstupních polí před zpracováním formuláře, hodí se nám použití validátorů z návrhu aplikace podle Springu. !!!Instalace Není třeba instalovat nic nad rámec Spring frameworku verze 2.0 a vyšší. !!!Konfigurace Prvním krokem je přidání beany validátoru do ''applicationContext.xml''. [@ <bean id="zalozOsobuFormValidator" class="cz.zcu.kiv.opencms.springmvcapp.validator.ZalozOsobuFormValidator"> <property name="osobaManager" ref="osobaManager" /> </bean> @] Následuje navázání beany validátoru ke controlleru v ''springmvcapp-servlet.xml''. [@ <bean name="zalozosobuController" class="cz.zcu.kiv.opencms.springmvcapp.controllers.ZalozOsobuFormController"> <property name="validator" ref="zalozOsobuFormValidator" /> ... </bean> @] !!!Třída validátoru Vlastní validátor je svázán s formulářem, který je namapován na jeden konkrétní domévý objekt. !!!!Provázání s formulářem z jsp stránek Zkrácená podoba jsp stránky náležící danému controlleru: [@ <form:form method="post" commandName="zalozosobu"> <table> <tr> <td>Jmeno:</td> <td><form:input path="jmeno" /></td> <td><form:errors path="jmeno" cssClass="error"/></td> </tr> <tr> <td>Prijmeni:</td> <td><form:input path="prijmeni" /></td> <td><form:errors path="prijmeni" cssClass="error"/></td> </tr> <tr> <td colspan="2"> <input type="submit" value="Ulozit osobu" /> </td> </tr> </table> </form:form> @] Namespace, chcete-li jmenný prostor ''form'' je použit ze Springu a je třeba mít v záhlaví stránky následující kód: [@ <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> @] Namespace je zde použit pro provázání validovaného formuláře s vlastním validátorem, respektive pro namapování na konkrétní objekt. Ve výše uvedém příkladu je namapováno pouze jméno a příjmení z objektu ''Osoba'' přes ''form:input'', kde ''path'' říká, na co konkrétně je dané pole namapováno. Řádek začínající ''form:errors'' pro danou ''path'' je v příkladu uveden proto, aby případné nevalidní řádky mohly být označeny jako nevalidní patřičným řetězcem z validátoru. !!!!Vlastní validování Třída ve zkrácené podobě musí vypadat následovně: [@ public class ZalozOsobuFormValidator implements Validator { @Override public boolean supports(Class arg0) { return Osoba.class.isAssignableFrom(arg0); } @Override public void validate(Object arg0, Errors errors) { Osoba osoba = (Osoba) arg0; /* Je jmeno delsi nez 2 znaky? */ if (osoba.getJmeno() != null && osoba.getJmeno().length() < 3) { errors.rejectValue("jmeno", "error.shortName", null, null); } } } @] * V metodě ''supports'' se kontroluje, zda je objekt přiřaditelný příchozímu argumentu. * Metoda ''validate'' slouží k vlastní validaci formuláře. Pravidla pro validaci určuje programátor. Najde-li validátor nevalidní hodnotu ve formuláři, musí nad objektem errors zavolat metodu ''rejectError()'', kde první parametr je jméno vlastnosti validovaného objektu, ke kterému náleží daná chyba a druhý parametr je klíč, pod kterým se má hledat lokalizovaná zpráva v messages_xx.properties, která se následně zobrazí na jsp stránce formuláře. |