Na série (4) e (5), mostramos como vincular dados e como garantir a correção dos dados que obtemos após a ligação dos dados? É sobre isso que vamos falar neste artigo -> Verificação de dados.
Aqui usamos o Validador de Hibernato para verificação. Hibernate-Validator implementa a estrutura de verificação JSR-303 para apoiar a verificação do estilo de anotação. Primeiro, precisamos fazer o download do pacote JAR exigido em http://hibernate.org/validator/. Aqui usamos 4.3.1.Final como uma demonstração. Após a descompressão, adicione os três pacotes Hibernate-Validator-4.3.1.Final.Jar, JBoss-Logging-3.1.0.Jar, Validation-Api-1.0.0.ga.jar ao projeto.
Configure o arquivo SpringServlet-config.xml no projeto anterior, como segue:
<!-Suporte para mapeamento de anotação padrão-> <MVC: Validador de anotação driven = "Validator" conversão-service = "conversão-serviço" /> <bean id = "validator"> <nome da propriedade "ProviderClass" value = "org.ibernate.Validator.IbrinationArtIrtator" /não se set) <propriedade name = "validationMessagesource" ref = "validatemessagesource"/> </i bean> <bean id = "conversão-serviço"/> <bean id = "validatemessagesource"> <nome da propriedade "nome-" nome "utENSET" utENSET "e" namesCodings "" utEnSet "utENSET" e "codanecodings" utENSET "utEnCodings" utEnSets). value = "120"/> </ Bean>
O ClassPath: ValidAtemessages em <propriedade name = "Basename" value = "ClassPath: validatemessages"/> é o arquivo em que a mensagem de verificação de anotação está localizada e precisamos adicioná -lo na pasta Recursos.
Adicione um conteúdo validateController.java no pacote com.demo.web.controllers da seguinte forma:
package com.demo.web.controllers;import java.security.NoSuchAlgorithmException;import javax.validation.Valid;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.validation.BindingResult;import org.springfamework.web.bind.annotation.modelattribute; importar org.springframework.web.bind.annotation.requestMapping; importação org.springframework.web.bind.annotation.requestMethod; import.demo.webming.webmy.bind.annotation.requestMethod; import.Demo.webm "/validate") public class validateController {@ReQuestMapping (value = "/test", método = {requestmethod.get}) public string test (modelo model) {if (! Model.containsattribute ("contentModel")) {Model.addtribute ("contentmodel", vidiLAtemodel ")) {Model.addtribute (" contentmodel ", vidiLatemodel")) {Model.addtribute; } retornar "validateTestest"; } @ReQuestMapping (value = "/teste", método = {requestMethod.post}) public String test (modelo de modelo, @Valid @Modelattribute ("contentModel") validatemodel validatemodel, o resultado de bindingResult) lança nuclgorithMortSception (// se houver houver a verificação de verificação) teste (modelo); retornar "validateSuccess"; }}@Valid @modelattribute ("contentmodel") validatemodel validatemodel @valid significa verificar após vincular os dados a @modelattribute ("contentmodel").
Adicione um conteúdo Validatemodel.java no pacote com.demo.web.models da seguinte forma:
pacote com.demo.web.models; importar org.hibernate.validator.constraints.email; importar org.hibernate.validator.constraints.notEmpty; importar org.hibernate.validator.constraints.range; public class validemodel {@NotEMpty (= "{(names.norn.nange; public class validemodel {@NotEMpty (=" {(names.norn.nrange; @Range (min = 0, max = 150, message = "{Age.not.inRange}") Age da string privada; @NotEmpty (message = "{email.not.empty}") @email (message = "{email.not.correct}") private string email; public void setName (nome da string) {this.name = name; } public void setage (idade da string) {this.age = Age; } public void setEmail (string email) {this.email = email; } public string getName () {return this.name; } public string getage () {return this.age; } public string getemail () {return this.mail; }}Adicione o seguinte conteúdo ao arquivo em que a mensagem de verificação de anotação está localizada, o arquivo validatemessages.properties:
name.not.empty =/u540d/u79f0/u4e0d/u80fd/u4e3a/u7a7a/u3002age.not.inRange =/u5e74/u9f84/u8d85 /u51fa/u8303/u56f4/u3002email.not.correct=/u90e/u7bb1/u5730/u5740/u4e0d/u6b63/u786e/u3002em ail.not.empty =/u7535/u5b50/u90e/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
Entre eles, nome.Not.Empty, etc. corresponde ao nome XXX em message = "xxx" no arquivo validatemodel.java. O conteúdo a seguir é inserido na codificação ASCII que é automaticamente convertida em chinês. Obviamente, você também pode escrever xxx diretamente como conteúdo rápido sem criar outro arquivo validatemessages.properties e adicioná -lo. No entanto, isso está incorreto, porque se você codificar, não poderá internacionalizá -lo.
Adicione duas visualizações na pasta Views, validatetest.jsp e validatesuccess.jsp, respectivamente:
<%@ página linguagem = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c//dtd html 4.01 transitório //" http://www.ww.ww.wg.wwg.wwg.wwg/htd.wwg/htd html 4.01 transitório // "http://www.ww.ww.wg.wwg.wwg/htd Html 4.01 transitório // EN" taglib prefix = "form" uri = "http://www.springframework.org/tags/form" %> <html> <head> <meta http-equiv = "content-ttype" content = "text/html; charset = utf-8"> <tits> <tit-title "title" title " modelAttribute="contentModel" method="post"> <form:errors path="*"></form:errors><br/> name:<form:input path="name" /><br/> <form:errors path="name"></form:errors><br/> age:<form:input path="age" /><br/> <form:errors path="age"></form:errors><br/> e-mail:<form:input path="age"></form:errors><br/> path="email" /><br/> <form:errors path="email"></form:errors><br/> <input type="submit" value="Submit" /> </form:form> </body></html>
<%@ página de página = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitório // en" "http://www.w3.org/tr/html4/loose.dtd"><html> <head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <title> insert! </body> </html>
É particularmente importante ressaltar que o nome xxx após modelAttribute = "xxx" na visualização ValidateTest.jsp deve ser consistente com o nome XXX na correspondente @Valid @modelattribute ("xxx"), caso contrário, os dados do modelo e as informações de erro não serão vinculados.
<formulário: erros path = "name"> </form: erros> exibirá informações de erro para os atributos correspondentes do modelo. Quando Path = "*", informações de erro para todos os atributos do modelo são exibidas.
Execute o teste:
Clique para enviar diretamente:
Você pode ver a mensagem de erro de que as configurações são exibidas corretamente.
Preencher dados incorretos a serem enviados:
Você pode ver que a mensagem de erro que ainda é exibida corretamente.
Preencha os dados corretos a serem enviados:
Você pode ver que a verificação é bem -sucedida.
A seguir, são apresentadas as principais notas e instruções de verificação:
O conteúdo de verificação de dados termina aqui, download de código: demonstração
Para mais informações, consulte o documento oficial: http://docs.jboss.org/hibernate/validator/4.3/reference/en-us/html/validator-usingvalidator.html
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.