繁体   English   中英

为什么在Spring Boot 1.5 @Controller中String参数总是为null?

[英]Why are String parameters always null in a Spring Boot 1.5 @Controller?

我将Spring 4.1应用程序(运行I JBoss)迁移到了SpringBoot 1.5(Spring 4.3.7),此后,我们所有带有String参数的MVC控制器在调用时总是接收空值。

我可以获得参数值集的唯一方法是将String替换为StringBuilder。

一个例子,不再工作了:

@RequestMapping(value = "/updateTime", method = RequestMethod.POST)
public String updateTime(@RequestParam(value="time") String time) {
  // time is null in SpringBoot
}

工作(用StringBuffer代替String:

@RequestMapping(value = "/updateTime", method = RequestMethod.POST)
public String updateTime(@RequestParam(value="time") StringBuffer time) {
  // time has expected value
}

HTML:

<form name="updateTime" action="updateTime.html" method="post">
    Time: <input type="text" name="time" placeholder="YYYY-MM-DD HH:mm" value="${time}"/> <br/>
    <input type="submit" name="action" value="   Update   "/>
</form>

即使将控制器中的String参数复合到一个请求对象中,我也可以获得这种行为。

我在这里做错什么了吗?

INFO :Spring使用HTML名称属性。 您应该具有相同的名称和RequestParam值。 注意:在HTML表单操作中,最好也与RequestMapping值相同。 尝试这个 :

<form name="updateTime" action="/updateTime" method="post">
    Time: <input type="text" name="time" placeholder="YYYY-MM-DD HH:mm" value="${time}"/> <br/>
    <input type="submit" name="action" value="   Update   "/>
</form>

@RequestMapping(value = "/updateTime", method = RequestMethod.POST)
public String updateTime(@RequestParam(value="time") String time) {
  // time is null in SpringBoot
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM