java - 禁止 Spring 接受 POST 参数作为查询参数

标签 java spring spring-mvc spring-boot

我有一个 Controller 如下:

@RequestMapping(path = "validate", method = POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<Object> validate(@Valid @ModelAttribute ValidationRequest request) {
}

ValidationRequest 是一个包含几个字段的 POJO。

通过此设置,我希望此方法接受 仅通过请求正文 传递的 POST 参数。但是,如果我们发出像 http://localhost:8080/validate?param1=a¶m2=b 这样没有任何主体的 POST 请求,它仍然会接受它。我已将 ValidationRequest 中的所有字段标记为必填字段。

有什么建议吗?我在这里遗漏了什么吗?

最佳答案

也许尝试用@RequestBody 代替@ModelAttribute。

关于java - 禁止 Spring 接受 POST 参数作为查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35716406/

相关文章:

java - jBPM + Spring 事务共享和范围

java - Spring Boot 无法从 MySQL 数据库获取和显示数据

java - Validator 的目标无效 - Spring MVC

jquery - Spring Boot - 使用 ModelAndView 返回 ResponseEntity

java - 有没有办法将 String 转换为 JTextField 类型?

java - 在 Gradle 构建中兼顾 Scala、Antlr 和 Java

java - AtomicInteger 是如何工作的?

java - Spring Security 找不到自定义 UserDetailsS​​ervice

spring - @RequestMapping 正则表达式

java - 添加Spring库时出现"Given parent is not an ancestor of this virtual file"错误