spring boot里增加表单验证hibernate

网友投稿 247 2023-02-26


spring boot里增加表单验证hibernate

创建项目

使用IDEA创建一个spring-boot项目,依赖选上 web, validation, freemarker 即可

先看看效果

创建实体类

创建并加上注解,代码如下

public class Person implements Serializable {

@NotNull

@Length(min = 3, max = 10) // username长度在3-10之间

private String username;

@NotNull

@Min(18) // 年龄最小要18岁

private Integer age;

@NotNull

// 使用正则来验证字段,message: 设置验证失败的信息

@Pattern(regexp = "[\\w-\\.]+@([\\w-]+\\.)+[a-z]{2,3}", message = "邮箱格式不正确")

private String email;

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

}

配置controller

代码:

@Controller

public class WebController extends WebMvcConfigurerAdapter {

@Override

public void addViewControllers(ViewControllerRegistry registry) {

//添加一个路由并设置页面名字

registry.addViewController("/results").setViewName("results");

}

@GetMapping("/")

public String showForm(Person person) {

return "form";

}

@PostMapping("/")

public String checkPersonInfo(@Valid Person person, BindingResult bindingResult, RedirectAttributes redirectAttributes) {

/http:/// 使用BindingResult来验证表单数据的正确性

if (bindingResult.hasErrors()) {

// 将提交的表单内容原封不动的返回到页面再展示出来

redirectAttributes.addFlashAttribute("person", person);

return "form";

}

return "redirect:/results";

}

}

注:不要忘了 @Valid 注解

表单页面

表单页面里用到了spring标签来取验证失败的数据,在spring-boot里想用spring标签可以将 spring.ftl 文件在放在 resources 里面,然后在 application.yml 里添加上如下配置即可

spring.ftl 文件路径: org.springframework.web.servlet.view.freemarker.spring.ftl

spring:

freemarker:

settings:

auto_import: /spring.ftl as spring

表单页面代码

<@spring.bind "person.username"/>

placeholder="username"/>

<@spring.showErrors ""/>

<@spring.bind "person.age"/>

<@spring.showErrors ""/>

<@spring.bind "person.email"/>

placeholder="email"/>

<@spring.showErrors ""/>

注:一定要先使用 <@spring.bind "person.username"/> 将字段绑定好,下面再使用 <@spring.showErrors ""/> 来取出来错误信息

参考

https://spring.io/guides/gs/validating-form-input/

总结

以上所述是给大家介绍的spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用 Spring Boot 2.0 + WebFlux 实现 RESTful API功能
下一篇:投保业务场景接口测试用例(保险接口测试)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~