使用SpringMVC在一页上使用多表单

时间:2018-07-11 09:44:31

标签: forms spring-mvc spring-validator

我正在尝试在一页上处理三种形式。 我有一个模型“用户”。三种用户页面:管理员,KnownUser,访客。

  1. 我创建用户对象并将其添加到我的控制器中的模型中:

    model.addAttribute(“ adminUser”,new User());

    model.addAttribute(“ knownUser”,新的User());

    model.addAttribute(“ guestUser”,新的User());

  2. 我的表单如下:

    <spring:form method="post" id="adminForm" modelAttribute="adminUser" 
    action="saveUser.action">
    
    <spring:form method="post" id="adminForm" modelAttribute="knownUser" 
    action="saveUser.action">
    
    <spring:form method="post" id="adminForm" modelAttribute="guestUser" 
    action="saveUser.action">
    
  3. 验证方法: 公共ModelAndView saveReport( @Valid @ModelAttribute(“ adminUser”)用户admin, @Valid @ModelAttribute(“ knownUser”)用户knownUser, @Valid @ModelAttribute(“ guestUser”)用户来宾, BindingResult结果){ //一些逻辑...
    }

问题: 当我填写以下三种形式之一时,所有“模型属性”都将获得此值。 例如:当我仅发送名称为“ age”的“ path”-属性的值的“ adminUser”时,值为23。 通过验证,路径属性“年龄”上的所有三种形式的值均为23。 实际上,我已经预料到,只有“ adminUser”模型具有值为23的路径属性“ age”,而模型“ knownUser”和“ guestUser”的路径属性应为“ age”。

我怎么能做到这一点?

0 个答案:

没有答案