gpt4 book ai didi

java - 为什么 Spring Boot 1.5 @Controller 中的 String 参数始终为 null?

转载 作者:行者123 更新时间:2023-12-02 01:27:07 25 4
gpt4 key购买 nike

我将 Spring 4.1 应用程序(运行 JBoss)迁移到 SpringBoot 1.5(Spring 4.3.7),之后,所有带有字符串参数的 MVC Controller 在调用时总是收到 null 值。

我获取参数值集的唯一方法是将 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>

即使 Controller 中的字符串参数复合到请求对象中,我也会得到这种行为。

我在这里做错了什么吗?

最佳答案

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
}

关于java - 为什么 Spring Boot 1.5 @Controller 中的 String 参数始终为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56751121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com