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

在我当前的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>

由该弹簧控制器处理:

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

我的问题是object正在获取空值,不允许程序保留数据。同时显示变量objectresult的内容,它们显示为null;但是,如果我尝试通过以下方式显示参数的值:

System.out.println("result.model.username: "+result.getModel().get("username"));

显示正确的值。这是什么问题,为什么@Valid Usuario object,BindingResult result给我一个空值,而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);
  }

但是有同样的问题。

xiaojiankunzhuxi 回答:Spring不从表单提交中读取模型属性

我设法通过更改参数来解决此问题:

<View style={{ marginTop: 10 }}>
                        <View style={{ flexDirection: 'row',justifyContent: "space-between" }}>
                            <View style={{ flexDirection: 'column',alignItems: 'center',justifyContent: 'center',padding: 5,alignSelf: 'flex-start' }}>
                                <Image
                                    resizeMode="stretch"
                                    source={require('../assets/images/Home/zinger_ratha.jpg')}
                                    style={{ width: width / 2.2,height: width / 2,resizeMode: 'stretch',}} />
                                <Text style={{ fontSize: 18 }}>Zinger Ratha</Text>
                            </View>
                            <View style={{ flexDirection: 'column',alignSelf: 'flex-start' }}>
                                <Image
                                    source={require('../assets/images/Home/arabian_delight.png')}
                                    style={{ width: width / 2.2,resizeMode: 'stretch' }} />
                                <Text style={{ fontSize: 18 }}>Arabian Delight</Text>
                            </View>
                        </View>
                        <View style={{ flexDirection: 'row',alignSelf: 'flex-start' }}>
                                <Image
                                    resizeMode="stretch"
                                    source={require('../assets/images/Home/mingle_bucket.jpg')}
                                    style={{ width: width / 2.2,}} />
                                <Text style={{ fontSize: 18 }}>Mingle Bucket</Text>
                            </View>
                            <View style={{ flexDirection: 'column',alignSelf: 'flex-start' }}>
                                <Image
                                    source={require('../assets/images/Home/xtreme_box.jpeg')}
                                    style={{ width: width / 2.2,resizeMode: 'stretch' }} />
                                <Text style={{ fontSize: 18 }}>Xtreme Box</Text>
                            </View>
                        </View>
                    </View>

收件人:

@ModelAttribute("usuario") Usuario object

遵循上述评论中的建议(来自M.Deinum)

本文链接:https://www.f2er.com/3087965.html

大家都在问