- Java Script validacija - znači dobri stari js
- moderniji pristup je pomoću jQuery-a tj. Do more write less pristupom
- najnovije čudo "tehnike" HTML5 i svog konja za utrku ima
- Spring naravno nije bez aduta
- i ako koristite Hibernate i on ima svog asa u rukavu
Svaka od navedenih metoda nudi svoje nedostatke i prednosti. Navest ću neke od njih. Naravno Java Script će raditi samo ako je js omogućen u browseru, ali ni to nije bez lijeka - jednostavna poruka se da ispisati ako je kojim slučajem napravio disable js u svom browseru (mislim da 90% korisnika ni ne znam kako se ovo radi). Ne znanje korisnika nekad može biti velika prednost. Ali budimo realni pisanje validacije u običnom js nije baš najlakši posao na svijetu. Ako se baš odlučite na js pristup možda je ipak jQuery put kojim bi se trebali uputiti. Premda jQuery ne smatra validaciju kao primarnu djelatnost, ali zato je nudi kao plug in. Mali pogled na službenu dokumentaciju će zadovoljiti i najizbirljivije (http://docs.jquery.com/Plugins/Validation). Ako vam to ne odgovara probajte više infa naći ovjde: http://speckyboy.com/2009/12/17/10-useful-jquery-form-validation-techniques-and-tutorials-2/
Sada dolazimo do html dijela. Potez da HTML5 uključi validaciju je genijalni potez. Premda još uvijek postoje ljudi koji koriste stare verzije browsera koji ne podržavaju HTML5, ne smije se potpuno oslanjati na nju. Uvijek treba imati na umu da se nađe onaj jedan! A pošto je internet globalno selo s najviše stanovnika taj jedan se vrlo lako multiplicira na nekoliko stotina. Nekoliko stotina (a i manje nije ništa bolje) je dovoljno da napravi podosta štete vašoj savršenoj isplaniranoj aplikaciji/bazi... Ono što ide ovom načinu validacije u prilog je vrijeme! S vremenom neće biti browsera na netu koji ne podržava HTML5 tj. i oni ljudi koji su imali prastare verzije firefoxa (moja tetka), IE (verzija koja je došla sa windowsima)... će biti zamijenjena nekom novijom. Plus HTML5 se za razliku od js ne može isključiti :-)
E sada je na redu više "Java" dio validacije. Spring ima jako dobrog konja za utrku, po meni i najboljeg, ako se pravilo odradi. Pošto je Spring vrlo naklon lokalizaciji pa sve naše labele možemo staviti u .properties fileove, tamo možemo i sve moguće erorre u validaciji staviti u jedan takav file i naravno u nekoliko svjetskih jezika. Taj dio je jako važan! Inače, ako se ovo ne napravi, validacija će raditi ali će korisnik dobiti jako ružan error ispisan crvenim slovima. Ali ako errore stavimo u propeties file onda dobivamo validaciju jednaku onoj navedenim u prethodnim koracima. Veliki plus ovoj validaciji je da se također vrlo lako napravi i reprezentacija unesenih podataka. Za one koji ne znaju reprezentacija je kada korisnik nešto unese, klikne na submit i recimo ima 4 točna unešena polja od 5, ispravni podatci će mu ostati dok kod krivog unešenog će dobiti ispisani error. Mislim da je korist i više nego očigledna.
Zadnji, a ujednio i zadnji dio obrane je hibernateova validacija. Ovo je više kao nekakav "good practice" nego potreba. Stavljanje anotacije @NOT NULL, određivanje dužine polja itd... Samim time ako kojim slučajem spring ne odradi svoj dio imamo još jednu razine obrane. Ovaj dio uvijek obavezno radite radi sebe. Učite se raditi pravilno, a ako kojim slučajem spring, js, html5 validacija zakaže imate još nešto što neće.
I nakon cijele ove priče opet počinjemo od početnog pitanja - koju odabrati? Moj savijet je odaberite dve ako možete, više od toga vam ne treba jer u protivnom samo si radite višak posla bez efekta. Ako koristite hiberante, obavezno koristite njegovu validaciju plus još jednu po vašem odabiru. Ako ne koristite orm, odaberite one dve koje smatrate da možete dobro provesti u praksi. Naravno treba procijeniti kolika vam je i važnost podataka koji vam se unose. Koliko je šteta ako se unesu krivo itd. ako nije neka velika vrijednost, jedna je i više nego dovoljna. Uglavnom odlučite sami. Pogledajte koje uopće mogu zajedno raditi. Za Hiberante i Spring govorim iz iskustva i prema meni je najbolja kombinacija. U velikoj većini jedna validacija je sasvim dovoljna.
Nema komentara:
Objavi komentar