使用<spring:bind>标签绑定验证数据

刚开始学习spring,迷迷糊糊的看着各种配置,按照书上的例子弄了下来,虽然可以正常使用,但是还是有一些地方不明白。

比如使用<spring:bind>时的path属性,书上默认设置为<spring:bind path="command.username">,但是这个command是从哪里来的呢?后来去网上搜索了一下,这个command是默认用来指定jsp页面的数据绑定的那个对象,你可以在controller中修改使用setCommandName("loginform")来修改这个名字,这里的loginform是你想用的名字,然后你在jsp页面就可以绑定为:<spring:bind path="loginform.username">.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,根据您的要求,我来为您提供一个Spring MVC中的表单,用于注册员工的信息,并且使用Validation框架完成属性验证规则: ```java import java.util.Date; import javax.validation.constraints.Pattern; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; public class Employee { @Length(min = 6, max = 10, message = "姓名长度必须在6~10个字符之间") private String name; @DateTimeFormat(pattern = "yyyy-MM-dd") @Past(message = "生日必须早于当前时间") private Date birthday; @DateTimeFormat(pattern = "yyyy-MM-dd") @NotNull(message = "入职日期不能为空") private Date hireDate; @Pattern(regexp = "^1[3456789]\\d{9}$", message = "电话号码格式不正确") private String phone; @Pattern(regexp = "^0\\d{2,3}-\\d{7,8}$", message = "备用电话号码格式不正确") private String backupPhone; // getter and setter methods } ``` 在Controller中,我们需要加入`@Valid`注解来启用Validation框架对表单数据验证,同时使用`BindingResult`对象来存储验证结果。 ```java import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller @RequestMapping("/employee") public class EmployeeController { @RequestMapping(value = "/register", method = RequestMethod.GET) public String register(Model model) { model.addAttribute("employee", new Employee()); return "employee/register"; } @RequestMapping(value = "/register", method = RequestMethod.POST) public String register(@Valid Employee employee, BindingResult result) { if (result.hasErrors()) { return "employee/register"; } // 保存员工信息 return "redirect:/employee/list"; } } ``` 在JSP页面中,我们需要使用Spring的`<form:form>`标签来渲染表单,并且使用`<form:errors>`标签来渲染错误信息。 ```jsp <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <form:form method="post" modelAttribute="employee"> <table> <tr> <td><label for="name">姓名:</label></td> <td><form:input path="name" id="name" /></td> <td><form:errors path="name" cssClass="error" /></td> </tr> <tr> <td><label for="birthday">生日:</label></td> <td><form:input path="birthday" id="birthday" /></td> <td><form:errors path="birthday" cssClass="error" /></td> </tr> <tr> <td><label for="hireDate">入职日期:</label></td> <td><form:input path="hireDate" id="hireDate" /></td> <td><form:errors path="hireDate" cssClass="error" /></td> </tr> <tr> <td><label for="phone">电话:</label></td> <td><form:input path="phone" id="phone" /></td> <td><form:errors path="phone" cssClass="error" /></td> </tr> <tr> <td><label for="backupPhone">备用电话:</label></td> <td><form:input path="backupPhone" id="backupPhone" /></td> <td><form:errors path="backupPhone" cssClass="error" /></td> </tr> </table> <button type="submit">提交</button> </form:form> ``` 注意,在JSP页面中的`<form:input>`标签会自动根据属性类型进行数据绑定,而且我们在Employee类中使用了`@DateTimeFormat`注解来指定日期类型的格式化方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值