Dalam seri (4) dan (5), kami menunjukkan cara mengikat data, dan bagaimana memastikan kebenaran data yang kami dapatkan setelah mengikat data? Inilah yang akan kita bicarakan dalam artikel ini -> Verifikasi Data.
Di sini kita menggunakan validator hibernate untuk verifikasi. Hibernate-validator mengimplementasikan kerangka kerja verifikasi JSR-303 untuk mendukung verifikasi gaya anotasi. Pertama, kita perlu mengunduh paket JAR yang diperlukan di http://hibernate.org/validator/. Di sini kita menggunakan 4.3.1.Final sebagai demonstrasi. Setelah dekompresi, tambahkan tiga paket hibernate-validator-4.3.1.final.jar, jboss-gogging-3.1.0.jar, validasi-api-1.0.0.ga.jar ke proyek.
Konfigurasikan file springservlet-config.xml di proyek sebelumnya, sebagai berikut:
<!-Dukungan untuk pemetaan anotasi default-> <mvc: validator yang digerakkan oleh anotasi = "validator" konversi-service = "layanan konversi" /> <bean id = "validator"> <nama properti = "providerclass" validing = org.hibernate.validator.hiberneTevalidator ". -> <name properti = "validationMessageSource" ref = "validatemessageSource"/> </ bean> <bean id = "konversi-service"/> <bean id = "validatemessageSource"> <nama properti = "nilai" nilai = "classpath: validatemessages"//<name properten = "nameer =" classpath "/validatemessages"//<name name = "name =" clementpath: "" name "name =" classpath: "clemspath"/</a name = "name =" classpath: "name =" clemeSpath "/<" name = "name =" clemeSpath "/<" name = "name =" name = "classpath" value = "120"/> </bean>
ClassPath: ValidAteMessages di <name properti = "Basename" value = "ClassPath: ValidAteMessages"/> adalah file di mana pesan verifikasi anotasi berada, dan kita perlu menambahkannya di folder sumber daya.
Tambahkan konten validateController.java di paket com.demo.web.controllers sebagai berikut:
Paket com.demo.web.controllers; impor java.security.nosuchalgorithmException; impor javax.validation.valid; impor org.springframework.stereotype.controller; impor org.springframework.ui.model; impor -org.springframework.ui.model; impor.springfr. org.springframework.web.bind.annotation.modelattribute; impor org.springframework.web.bind.annotation.requestmapping; impor org.springframework.web.bind.annotation.requestMethod; impor com.demo.web.models "/validate")public class ValidateController { @RequestMapping(value="/test", method = {RequestMethod.GET}) public String test(Model model){ if(!model.containsAttribute("contentModel")){ model.addAttribute("contentModel", new ValidateModel()); } return "validatestest"; } @RequestMapping (value = "/test", Method = {requestMethod.post}) tes string publik (model model, @valid @modelattribute ("contentModel") validateModel validateModel, bindingResult Hasilnya) return ke nosuchalgorithMException {//iferrese (he nosuchalgorite ificer nosuchalgorith {hasil ificrese (he nosuchalgorith {hasil nosuchalgorith {hasilnya) tes (model); return "ValidateSuccess"; }}@Valid @modelattribute ("ContentModel") ValidAteModel ValidAteModel @valid berarti memverifikasi setelah mengikat data ke @ModelAttribute ("ContentModel").
Tambahkan Konten ValidAteModel.java di paket com.demo.web.models sebagai berikut:
Paket com.demo.web.models; impor org.hibernate.validator.constraints.email; impor org.hibernate.validator.constraints.notempty; impor org.hibernate.validator.constraints.range; name validatemodel {@noTemplan (message = " @name. @Range (min = 0, maks = 150, pesan = "{age.not.inrange}") usia string pribadi; @NoTEmpty (message = "{email.not.empty}") @email (message = "{email.not.correct}") email string pribadi; public void setName (nama string) {this.name = name; } public void setage (String Age) {this.age = usia; } public void seteMail (string email) {this.email = email; } public string getName () {return this.name; } getage string publik () {return this.age; } public string geteMail () {return this.email; }}Tambahkan konten berikut ke file di mana pesan verifikasi anotasi berada, file validatemessages.properties:
name.not.empty =/u540d/u79f0/u4e0d/u80fd/u4e3a/u7a7a/u3002age.not.inrange =/u5e74/u9f84/u8d85 /u51fa/u8303/u56f4/u3002email.not.correct=/u90ae/u7bb1/u5730/u5740/u4e0d/u6b63/u786e/u3002em ail.not.empty =/u7535/u5b50/u90ae/u4e0d/u80fd/u60df/u6050/u3002email.not.empty =/u7535/u5b50/u 90AE/U4E0D/U80FD/U6050/U3002EMAIL.not.empty =/U7535/U5B50/U90AE/U4E0D/U80FD/U60DF/U6050/U3002
Di antara mereka, name.not.empty, dll. Sesuai dengan nama XXX di pesan = "xxx" dalam file validatemodel.java. Konten berikut dimasukkan dalam penyandian ASCII yang secara otomatis dikonversi dalam bahasa Cina. Tentu saja, Anda juga dapat menulis xxx secara langsung sebagai konten yang cepat tanpa membuat file validAteMessages.properties lain dan menambahkannya. Namun, ini tidak benar, karena jika Anda menggunakan kode hardcode, Anda tidak akan dapat menginternasionalkannya.
Tambahkan dua tampilan di folder tampilan, validatetest.jsp dan validateuccess.jsp, masing -masing:
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitional // en" "http://www.w3.org/org/ht4/t." taglib prefix="form" uri="http://www.springframework.org/tags/form" %><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <form:form modelAttribute="contentModel" Method = "Post"> <form: errors path = "*"> </form: errors> <br/> Name: <form: input path = "name"/> <br/> <form: errors path = "name"> </form: errors> <br/> even: form: input path = "use"/<br/> <Form: errors: ever: ever: ever: ever = "use"/<br/> <Form: errors: ever: ever: ever: ever = "use"/<br/> <Form: errors: ever: ever: ever: ever = "use"/<br/> <form: errors: ever: ever: ever: ever = "use" even "/<br/> <form: m-m-m: path = "usia"> </form: errors> <br/> path = "email"/> <br/> <form: errors path = "email"> </form: errors> <br/> <input type = "kirim" value = "kirim"/> </form: form> </body> </html>
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = UTF-8 "> <title> memasukkan judul di sini </title> </head </head> body = uTf-8"> <title> judul di sini </title> </head> body = uTf-8 "> <title> judul di sini </title> </head> </body = uTf-8"> <title> judul di sini </title> </head> body = uTF-8 "> <title> judul di sini </title> </head> body = uTF-8"> <title> title di sini </title> </head> body = uTf-8 </body> </html>
Sangat penting untuk menunjukkan bahwa nama xxx setelah modelTribute = "xxx" di tampilan validatetest.jsp harus konsisten dengan nama xxx di @valid @ModelAttribute yang sesuai ("xxx"), jika tidak, informasi model dan informasi kesalahan tidak akan terikat.
<Form: kesalahan path = "name"> </form: ERRORS> akan menampilkan informasi kesalahan untuk atribut model yang sesuai. Ketika path = "*", informasi kesalahan untuk semua atribut model ditampilkan.
Jalankan tes:
Klik untuk mengirimkan langsung:
Anda dapat melihat pesan kesalahan bahwa pengaturan ditampilkan dengan benar.
Isi data yang salah untuk mengirimkan:
Anda dapat melihat bahwa pesan kesalahan yang masih ditampilkan dengan benar.
Isi data yang benar untuk dikirim:
Anda dapat melihat bahwa verifikasi berhasil.
Berikut ini adalah catatan dan instruksi verifikasi utama:
Konten verifikasi data berakhir di sini, unduhan kode: demo
Untuk informasi lebih lanjut, silakan merujuk ke dokumen resmi: http://docs.jboss.org/hibernate/validator/4.3/reference/en-us/html/validator-usingvalidator.html
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.