创建同一对象的2个模型属性,并使用@RequestMapping将它们解析为控制器

时间:2017-08-08 21:23:54

标签: java spring maven spring-mvc thymeleaf

我试图创建一个对象的2个实例,然后通过input type="submit"将它们解析到控制器。

这就是我所拥有的:

@RequestMapping (value = "/webdata")
public String vorsorgestammdaten(Model model) {
    model.addAttribute("Data", new DataOp());
    model.addAttribute("Data2", new DataOp());
    return "/webdata";
}

// Here I want to parse both objects

@RequestMapping(value = "/formdata", method = RequestMethod.POST)
public String formdata(HttpServletRequest req, @AuthenticationPrincipal User currentUser, 
                       DataOp Data, DataOp Data2, Model model) {

    // Do stuff for example
    Data.getName();
    Data2.getName();
}

以下是我的表格的一部分:

<form method="post" th:action="@{/formdata}" th:object="${regData}">
  <div class="col-sm-4">
    <input th:field="${Data2.gender}" type="radio" value="MALE" name="gender" disabled="disabled" /><span>Mr</span>
    <input th:field="${Data2.gender}" type="radio" value="FEMALE" name="gender" disabled="disabled"/><span>Frau</span>
    <p>Firstname:</p>
    <input required="required" type="text"  th:field="${Data2.firstname}" placeholder="Max" disabled="disabled" />
  </div>
  <div class="col-sm-4">
    <input th:field="*{Data.gender}" type="radio" value="MALE" name="gender" disabled="disabled" /><span>Mr</span>
    <input th:field="*{Data.gender}" type="radio" value="FEMALE" name="gender" disabled="disabled"/><span>Frau</span>
    <p>Firstname:</p>
    <input required="required" type="text"  th:field="*{Data.firstname}" placeholder="Max" disabled="disabled" />
    <button type="submit">Speichern</button>
  </div>
</form>

2 个答案:

答案 0 :(得分:0)

为每个参数添加RequestAttribute注释,添加“name”属性以区分它们。

here你有一些信息。

答案 1 :(得分:0)

尝试删除此th:object="${regData}"

然后您可以使用@ModelAttribute注释。

例如,

public String formdata(HttpServletRequest req,@AuthenticationPrincipal User currentUser, @ModelAttribute DataOp Data,@ModelAttribute DataOp Data2, Model model) {
 //Some code
}

您也可以将*{Data.gender}切换为${Data.gender}