账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Spring MVC 利用modelAttribute进行表单元素绑定并提交表单时如何绑定多个对象
    26
    0

    我知道可以利用spring form来进行表单元素与pojo的绑定。如下

    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    
        <h1>add Stock</h1>
    
            <form:form action="saveStock" modelAttribute="stock" method="POST">
            
                <table>
                    <tbody>
                    
                        <tr>
                            <td><label>Base Rate Of Return:</label></td>
                            <td><form:input path="baseRateOfReturn" /></td>
                        </tr>
                    
                         <tr>
                            <td><label>Asset Code:</label></td>
                            <td><form:input path="code" /></td>
                        </tr>
                    
                        <tr>
                            <td><label>Asset Label:</label></td>
                            <td><form:input path="label" /></td>
                        </tr> 
    
                        <tr>
                            <td><label>Quarterly Dividend:</label></td>
                            <td><form:input path="quarterlyDividend" /></td>
                        </tr>
                        
    
                        
                        <tr>
                            <td><label>Price:</label></td>
                            <td><form:input path="sharePrice" /></td>
                        </tr>
                        
                        <tr>
                            <td><label>Beta:</label></td>
                            <td><form:input path="beta" /></td>
                        </tr>
                        
                        <tr>
                            <td><label></label></td>
                            <td><input type="submit" value="Save"/></td>
                        </tr>
    
                    
                    </tbody>
                </table>
            
            
            </form:form>
            
             <a href="${pageContext.request.contextPath}/assets">Back to List</a>
    
    
    </body>
    </html>

    modelAttribute对应一个pojo对象Stock,输入的内容会直接绑定到Stock对象并生成一个实例,比如<form:input path="beta" />会赋予实例stock里面的beta属性。

    相关的controller的部分代码如下

        @GetMapping("/addStockForm")
        public String addStockForm(Model theModel){
            Asset stocks = new Stock();
            
            theModel.addAttribute("stock", stocks);
            
            return "addStockForm";
        }

    和

        @PostMapping("/saveStock")
        public String saveStock(@ModelAttribute("stock") Stock tempStock) {
    
            service.addStock(tempStock);
            
            return "redirect:/assets";
        }

    我知道如何使用这个表单来绑定一个对象里的元素,但却不知道如何绑定两个对象。比如我要同时绑定Stock和Address两个对象元素,并在submmit的时候传入,应该如何实现?### 问题描述

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 傲う世ぁ猖狂 普通会员 1楼

      在Spring MVC中,我们可以使用modelAttribute来将模型对象绑定到表单元素。然后,我们可以在提交表单时使用@ModelAttribute注解来获取和绑定模型对象。

      以下是一个简单的例子:

      首先,我们有一个User模型类:

      ```java public class User { private String name; private String email;

      // getters and setters
      

      } ```

      然后,我们在对应的控制器中,例如UserController:

      ```java @Controller @RequestMapping("/users") public class UserController {

      @ModelAttribute("users")
      public List<User> getUsers() {
          return new ArrayList<>();
      }
      
      @PostMapping
      public String addUser(@ModelAttribute("users") List<User> users) {
          // 用户添加逻辑
          return "redirect:/users";
      }
      

      } ```

      在上面的代码中,@ModelAttribute("users")注解用于获取模型对象,getUsers()方法用于获取列表。@PostMapping注解用于添加新的用户。

      当你在前端表单中提交表单时,Spring MVC会自动获取并绑定到users属性的列表。然后,你可以在控制器中使用@ModelAttribute("users")注解来获取和绑定列表。例如,如果你在前端表单中添加了一个用户名和电子邮件字段,你可以这样添加:

      ```html



      ```

      然后,在Controller中,你可以这样处理:

      java @PostMapping public String addUser(@ModelAttribute("users") List<User> users) { // 用户添加逻辑 return "redirect:/users"; }

      这样,当你在前端表单中提交表单时,Spring MVC会自动获取并绑定到users属性的列表,并在控制器中使用@ModelAttribute("users")注解来获取和绑定列表。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部