spring-mvc 相关问题

基于模型 - 视图 - 控制器(MVC)模式构建Java Web应用程序的框架。它从底层视图技术中提升灵活和分离的代码。

不支持内容类型“multipart/form-data;boundary=----...;charset=UTF-8”

我想将一个对象发送到控制器,该对象具有多个包含文件的列表和多个包含纯文本的字段。 公共类贡献新 { 私人名单 我想将一个对象发送到控制器,该对象具有多个包含文件的列表和多个包含纯文本的字段。 public class ContributionNew<T extends MovieInfoDTO> { private List<T> elementsToAdd; private Map<Long, T> elementsToUpdate; private Set<Long> idsToDelete; private Set<String> sources; private String comment; } public class Photo extends MovieInfoDTO { private MultipartFile photo; } @PostMapping(value = "/{id}/contributions/photos") @ResponseStatus(HttpStatus.CREATED) public ResponseEntity<Void> createPhotoContribution( @ApiParam(value = "The movie ID", required = true) @PathVariable("id") final Long id, @ApiParam(value = "The contribution", required = true) @RequestBody @Valid final ContributionNew<Photo> contribution ) { 我正在使用postman发送数据。然而他却把我抛弃了 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=----WebKitFormBoundarywY7ByvgonAjDoaCT;charset=UTF-8' not supported 我应该为此控制器设置什么内容类型,以便我可以发送具有纯文本字段和文件列表的对象? 如果我在页眉中设置页眉 Content-type: multipart/form-data; charset=utf-8 它把我扔进控制台 org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found 如前所述,dknight @RequestBody 意味着使用 JSON 或 XML 数据来映射您的 DTO bean。 对于 MultipartFile,您不能使用 JSON 数据,因此不能使用 @RequestBody。 尝试使用@ModelAttribute注释。 工作样本: @PostMapping("/promoters") @Timed public ResponseEntity<PromoterDTO> createPromoter(@ModelAttribute PromoterDTO promoterDTO) throws URISyntaxException { ... } 像这样使用PromoteDTO: public class PromoterDTO implements Serializable { private Long id; private String name; private String address; private MultipartFile logo; } 在 Postman 中,您需要将正文设置为 raw 类型,然后从下拉菜单中选择 JSON,我遇到了类似的问题,这解决了我的问题。 大家好,只需将 @RequestBody 更改为 @ModelAttribute public ResponseEntity<DTO> exemple(@ModelAttribute DTO dto) throws TechnicalException 快乐编码。 不要使用 @RequestBody,而是使用 @RequestParam! import org.springframework.web.bind.annotation.ModelAttribute; 使用 @ModelAttribute 而不是 @RequestBody。这对我有用。 使用@ModelAttribute而不是@ResponseBody,因为这会占用键值对中的数据,而后者用于像json这样的对象。 在访问 api 时,只需传递对象的多部分类型和 json 键值对。效果很好! 关于这个的堆栈溢出问题 使用@ModelAttribute代替@RequestBody, @PostMapping(value = "/{id}/contributions/photos") @ResponseStatus(HttpStatus.CREATED) public ResponseEntity<Void> createPhotoContribution( @ApiParam(value = "The movie ID", required = true) @PathVariable("id") final Long id, @ApiParam(value = "The contribution", required = true) @ModelAttribute @Valid final ContributionNew<Photo> contribution ) { Produces = { "application/json" } 必须写在控制器中,而不是 Consumers = { "application/json" } 这是使用 Spring Boot 2.1.7 用 Kotlin 编写的完整代码示例 示例使用了 ProfileRepository,这当然是您实现的东西。 Kotlin 很好,因为 data class 已经实现了可序列化。 请注意,对于模型对象属性,您必须使用 var 而不是 val,否则日志消息中的字段值将为空。 import org.springframework.web.bind.annotation.ModelAttribute import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RestController import org.springframework.web.multipart.MultipartFile @RestController class ExampleController(private val myProfileRepository: ProfileRepository) { @PostMapping("/api/uploadFile") fun createProvider(@ModelAttribute request: CreateProfileRequest): Provider { println("received create request with photo: ${request.photo} for the following person ${request.name}") return myProfileRepository.save(Provider(name = request.name!!)) } } data class CreateProfileRequest( var name: String? = null, var photo: MultipartFile? = null )

回答 9 投票 0

从@Async函数调用中获取数据

嗨,我是java中多线程的新手。有人可以帮我解决这个问题吗: 我的服务: @异步 公共列表 doSomething(int a){ //做某事 返回列表; } Springboot应用...

回答 3 投票 0

Spring Boot 3.x.x 不支持 httpclient4

我在为 RestTemplate 实现 Apache Http 客户端配置时遇到一些错误 我使用的是SpringBoot 3.4.1版本,发现它默认支持httpclient5 我是

回答 1 投票 0

Old Spring 和电子邮件验证

对于具有 Java 1.8_431 的中间件,有一个 Spring 应用程序 4.3.1.发布 我有一个模型,其中有一个电子邮件字段,我必须...

回答 1 投票 0


使用 Spring Boot web 3.4.1 时的不同 HTTP 响应代码

背景信息 我们正在从 Spring Boot 版本 3.2.5 升级 一些背景信息,我们有一个微服务客户端服务 API,它是一个 API 网关并将请求转发到相应的

回答 1 投票 0

从 Spring 应用程序中的路径检索变量

我想提取Spring应用程序中路径的路径变量。 例子: /foor/{bar} => 酒吧 /{foo}/{bar} => foo,bar 有我可以使用的组件吗? 我想避免正则表达式 shenan...

回答 1 投票 0

不要在 Spring MVC 3 中使用 Jackson 序列化子类型属性

我使用 Spring MVC 和这样的控制器: @RequestMapping(value = "/list", method = RequestMethod.GET, Produce = "application/json") 公共@ResponseBody列表列表(){ 重新...

回答 4 投票 0

更改 Mustache 的编译器默认 null 值

我在项目中发现了一些覆盖 Spring MVC Mustache 默认配置的问题。 我的理解是,当模板

回答 3 投票 0

如何使用JavaScript发送加密密码并在Java后端解密?

我正在实现一个登录系统,其中密码在前端使用 JavaScript 进行加密,然后发送到 Java 后端进行解密。以下是我正在使用的设置: 前端代码 (...

回答 1 投票 0

如何在不使用 Spring Security 的情况下解决 CORS 问题

我有这个 WebMvcConfigurer,当部署在服务器上时它工作得很好。但是,当我尝试从本地服务的 Angular 项目向服务器发送请求时,出现以下错误。

回答 3 投票 0

使用 Spring Boot 的 SPA - 为非 API 请求提供 index.html

我目前正在开发一个应该使用单页 React 前端的网页。对于后端,我使用 spring boot 框架。 所有 api 调用都应使用前缀为 /api 的 url,并且应该...

回答 2 投票 0

如何在Spring Security中使某些链接未经授权?

这里有一个方法,您可以看到我将 /register 链接添加到了授权异常,但是当我尝试访问它时,我被抛出回默认的 Spring Security /登录表单。 @豆 噗...

回答 1 投票 0

JSON 响应给出 Http 500 内部服务器错误

尝试进行返回 JSON 的 ajax POST 调用时出现内部错误。 ajax 调用是从 JS 页面进行的: $.post( 'FilterAsJson', $(formWithReportData).serialize(), 功能...

回答 2 投票 0

添加 QueryDSL 时,JPAQueryFactory 无法解析为 Spring Boot 中的类型

我正在尝试了解在 springboot 中使用 JUnit 进行测试驱动开发。当我添加 queryDSL 查询时,我收到编译时错误,指出 JPAqueryfactory 无法解析为类型...

回答 1 投票 0

Spring框架和Spring Boot的区别? [已关闭]

第一次选择Spring Framework还是Spring Boot比较好?

回答 1 投票 0

Spring Boot 应用程序抛出 NonUniqueResultException

我遇到了一个我不熟悉的问题。我一直在网上找到类似的东西。 我面临的问题是过滤来自数据库的数据。我有两张桌子,...

回答 2 投票 0

Spring MVC @ExceptionHandler 链接

有没有办法将@ExceptionHandler与异常抛出链接起来? 我试图在发送响应之前将抛出的异常包装在请求处理程序方法中: @ExceptionHandler(值 = JsonParseExce...

回答 1 投票 0

如何覆盖JPA Audit中@CreatedBy注解的值

我想做一个功能,可以自动监控和更新createdBy、modifiedBy、createdAt、modifiedAt。我决定选择使用 JPA AuditingEntityListener。然而,在某些情况下,我想要...

回答 1 投票 0

对所有实体使用单一通用存储库是 Spring Data JPA 大型项目的良好实践

我正在开发一个大型 Spring Boot 应用程序,我正在寻找有关如何处理多个实体的存储库的建议。我想避免为每个实体创建单独的存储库,并且我...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.