Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring未从表单提交中读取模型属性_Spring_Forms_Spring Boot_Request_Submission - Fatal编程技术网

Spring未从表单提交中读取模型属性

Spring未从表单提交中读取模型属性,spring,forms,spring-boot,request,submission,Spring,Forms,Spring Boot,Request,Submission,在我当前的spring boot项目中,我有以下表格: <form class="form-container" id="form" method="post" th:object="${command}" th:action="@{/usuario/register}"> ... <div class="form-row"> <div class="col-25"> <label for="login"&

在我当前的spring boot项目中,我有以下表格:

<form class="form-container" id="form" method="post" th:object="${command}" th:action="@{/usuario/register}">
...
      <div class="form-row">
        <div class="col-25">
          <label for="login">Login</label>
        </div>
        <div class="col-75">
          <input type="text" id="login" th:field="*{username}" placeholder="Login">
        </div>
      </div>
...
</form>
我的问题是,
object
得到了一个空值,不允许程序保存数据。显示变量
对象
结果
的内容,它们显示为空;但如果我尝试使用以下命令显示参数值:

System.out.println("result.model.username: "+result.getModel().get("username"));
将显示正确的值。这里的问题是什么,为什么
@Valid Usuario object,BindingResult
给我一个空值,但是
HttpServletRequest
得到正确的值

更新

基于以下建议,我尝试以下方法:

  @ModelAttribute(value = "usuario")
  public Usuario newEntity()
  {
      return new Usuario();
  }

  @RequestMapping(value = "/register", method=RequestMethod.GET)
  public String formRegister(Model model) {
    model.addAttribute("command", newEntity());
    return "register";
  }

  @RequestMapping(value = "/register", method=RequestMethod.POST)
  @ResponseBody
  public void doRegister(@ModelAttribute("usuario") Usuario object) throws Exception {
    this.serv.register(object);
  }

但是遇到了同样的问题。

我通过更改参数成功解决了这个问题:

@ModelAttribute("usuario") Usuario object
致:


按照上面评论中的建议(来自M.Deinum)

检查这是否有帮助:@user3487063我已尝试修改我的代码,使其看起来像您建议的答案上的代码(请参阅更新),但遇到了相同的问题。您的模型对象名为command(根据您的百里香叶表单)。您有两个相同类型的模型对象。一个命名命令另一个命名为
usuario
。后者用于您的方法中,因此不绑定。
@ModelAttribute("usuario") Usuario object
@ModelAttribute("command") Usuario object