Spring says no data found in @RequestParam我试着改变@RequestPart或value,但不起作用。我怎么才能建立连接?谢谢你的任何建议,解决方案
React
boardWriter: sessionStorage.getItem("memberID"),
boardTitle: title,
boardContents: contents,
boardFile: file,
}
formData.append("saveData", new Blob([saveData]), {
type: "application/json",
})
formData.append("boardFile", file);
axios
.post("http://localhost:8080/api/board/write", saveData, {
headers: {
"Content-Type": "multipart/form-data",
}
})
.then(res => res.data)
.catch(err => console.log(err));
}
控制器
@PostMapping("/write")
public void save(@RequestPart("saveData") BoardDTO boardDTO,
@RequestPart(value = "boardFile") MultipartFile file) throws IOException {
String fileName = file.getOriginalFilename();
file.transferTo(new File(fileName));
boardDTO.setBoardFile(fileName);
boardService.save(boardDTO);
}
仓库
public int save(BoardDTO boardDTO) {
return sql.insert("Board.save", boardDTO);
}
服务
public int save(BoardDTO boardDTO) {
return boardRepository.save(boardDTO);
}
**error**
400 http bad request
Required BoardDTO parameter 'boardDTO' is not present
2条答案
按热度按时间ilmyapht1#
你可以使用@RequestParam和@ModelAttribute注解来实现文件的DTO。还有一些其他的代码,因为我重复使用了我写之前的代码。重点是如何在API端点获取数据。
下面是我的例子。
React
Spring
更好的方式
我认为这是管理后端代码的更好方法。
React
Spring
你需要为DTO设置方法。
qybjjes12#
更改此内容:
改为:
另外,您在下面的代码中似乎错误地发送了saveData,而不是formData。
请将其更改为:
这应该能让一切正常