将对象从Angular8发送到Spring Boot
我对网络开发相当陌生,我承认,在网上阅读了几篇指南之后,我仍然对一些基本概念有点困惑。 我有一个非常好用的Angular8表单:我插入数据并单击“提交” 并在控制台中打印表单的数据(我跟随以供参考) 这是我的将对象从Angular8发送到Spring Boot,angular,spring-boot,web-development-server,Angular,Spring Boot,Web Development Server,我对网络开发相当陌生,我承认,在网上阅读了几篇指南之后,我仍然对一些基本概念有点困惑。 我有一个非常好用的Angular8表单:我插入数据并单击“提交” 并在控制台中打印表单的数据(我跟随以供参考) 这是我的搜索消息的内容。ts(型号的类别): 现在,我正在尝试编写一个Spring Boot应用程序,它将接收model对象,并且我将简单地打印输出相同的数据。这个过程不应该涉及任何数据库(这就是为什么我感到困惑的原因:我在网上找到的所有指南都是关于将服务器上的db连接到Angular视图的)。我该
搜索消息的内容。ts
(型号的类别)
:
现在,我正在尝试编写一个Spring Boot应用程序,它将接收
model
对象,并且我将简单地打印输出相同的数据。这个过程不应该涉及任何数据库(这就是为什么我感到困惑的原因:我在网上找到的所有指南都是关于将服务器上的db连接到Angular视图的)。我该怎么做 在Spring Boot中,您必须定义一个控制器类,它公开您将从Angular应用程序调用的端点。@RestController
@RequestMapping("/path")
public CustomController {
@PostMapping("message")
public ResponseEntity<?> addModel(@RequestBody SearchMessage message) {
// do what you need with the element (ex. write to a db, print data..)
System.out.println("Data received: " + message.toString());
return ResponseEntity.ok().build();
}
}
并且,假设后端应用程序在端口8081
上运行,您可以像这样向端点发送post:
class SearchMessage {
private int id;
private String inputText;
private String targetSite;
private int searchLimit;
private boolean details;
// getters and setters
}
http://localhost:8081/your-app-context-path/path/message
其中,正文必须与您在方法参数message
中定义的SearchMessage
类兼容。
请注意,在
application.properties
文件中添加此属性,可以定义应用程序的上下文路径:
server.servlet.context-path=/myCoolApp
您可以在这篇文章中找到一个完整的工作示例。另请参见。
如果你需要更多的细节或解释,请告诉我 嗨,你能添加你在Angular中使用的模型类吗?谢谢你的评论@A.Wolf。我刚刚加上去的!再次感谢。当你说“主体必须与
SearchMessage
类兼容”是什么意思?欢迎!只有后端的SearchMessage
类必须具有与前端的SearchMessage
类兼容的字段,即数字字段在后端应成为整数或浮点字段,并且必须具有相同的名称。很明显,但是如果它们有不同的类型或名称,那么从前端传递到后端对象的编组将失败。我还添加了<代码>搜索消息< /代码>类。如果答案帮助您解决问题,请考虑接受它:)我几乎设法解决了这个问题。不管怎么说,你的回答真的很有帮助,所以我还是会接受的:)我还有几个问题(也许是琐碎的问题):所以我必须在两个不同的端口上同时运行这两个应用程序,对吗?那么这篇文章的角度又如何呢?
http://localhost:8081/your-app-context-path/path/message
server.servlet.context-path=/myCoolApp