我将运行Spring JBoss的Spring 4.1应用程序迁移到SpringBoot 1.5(Spring 4.3.7),然后,我们所有带有String参数的MVC控制器在调用时总是接收空值。
获取参数值集的唯一方法是用StringBuilder替换String。
一个例子,不再工作了:
@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参数复合到请求对象中,我也可以得到这种行为。
我在这里做错什么了吗?
答案 0 :(得分:2)
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
}