如何将Angular 4与现有的基于Spring Boot jsp的web应用程序集成?

如何将Angular 4与现有的基于Spring Boot jsp的web应用程序集成?,angular,jsp,spring-boot,Angular,Jsp,Spring Boot,我有一个现有的SpringBoot生产web应用程序,利用jsp和javascript。如果时间允许,我想用角度替换现有页面(一次一个或两个)。我是Angular的新手,我遇到的所有文档/帖子似乎都认为Angular是一个要么全有要么全无的场景。对于初学者,我将如何替换应用程序中的一个页面,该页面位于以下地址/cust/AccountSampleQuery?active=y?此时,用户已通过身份验证,并已从菜单中选择了此地址。如果您编写的是全新的Spring RESTful api,那么Angu

我有一个现有的SpringBoot生产web应用程序,利用jsp和javascript。如果时间允许,我想用角度替换现有页面(一次一个或两个)。我是Angular的新手,我遇到的所有文档/帖子似乎都认为Angular是一个要么全有要么全无的场景。对于初学者,我将如何替换应用程序中的一个页面,该页面位于以下地址/cust/AccountSampleQuery?active=y?此时,用户已通过身份验证,并已从菜单中选择了此地址。

如果您编写的是全新的Spring RESTful api,那么Angular很容易与之集成,但在您的案例中集成并非不可能。Angula的工作原理与AJAX相同,但OOP更像Java

您需要将现有的JSP方法替换为rest API方法,其中您有rest控制器来处理传入的web请求(post和查询参数以及路径变量的JSON),并使用
HttpStatus
代码和JSON对象进行响应

身份验证必须替换为JWT或任何基于令牌的身份验证。因为Angular很难运行基于会话的,更像是基于令牌的。因此,如果每个请求都要发送到API的安全部分,那么它必须伴随一个令牌

如果您希望沿着side Spring API(
.jar
.war
文件)打包Angular应用程序,则需要
WebMVCConfigureAdapter
来配置静态内容路径。下面是一个静态内容路径示例:

公共类WebConfig扩展了WebMVCConfigureAdapter{
@凌驾
public void addResourceHandlers(ResourceHandlerRegistry注册表){
registry.addResourceHandler(“/**”)
.addResourceLocations(“类路径:/static/”);
registry.addResourceHandler(“**/assets/**”)
.addResourceLocations(“类路径:/static/assets”);
}
@凌驾
public void addViewController(ViewControllerRegistry注册表){
registry.addViewController(“/”).setViewName(“重定向:/index.html”);
}

}
angular不会在项目中作为jsp运行。angular将独自一人,向您的java web应用程序发出一些请求。所以你需要先构建一个RESTAPI)是的,我知道Angular是客户端,我需要一个RESTAPI。当用户单击/cust/AccountSampleQuery的菜单选项时,angular“截取”请求并显示初始页面,用户在页面上输入数据,单击submit,angular提交REST请求并处理响应。我是否必须使用angular index.html,或者我可以使用更有意义的东西,比如customer.html?此外,我有一个应用程序的管理端,我想使用admin.html,而不是index.html。Angular是一个基于组件的系统;这意味着没有页面。您只有一个页面
index.html
,所有其他html文件都会加载到该页面,具体取决于路由器导航。一切都由
RouterModule
管理,因此您的ULR可以是
http://localhost/admin
http://localhost/customer 
。路由器将对此进行管理。我将添加示例路由器。可以将
index.html
更改为其他内容,但我不相信这有什么意义,因为它主要用于加载
{useHash:true}保存了我的夜晚。我在使用类似于/JSP/myapp/index.JSP的JSP启动应用程序时遇到问题。如果没有这个选项,我就无法使用预定义的路径启动我的应用程序,比如/jsp/myapp/event/123,因为它不知道如何加载index.jsp。使用hash选项,它可以理解/jsp/myapp/#/event/123。我在AngularJS中知道这一点,但不知道如何在Angular5中打开它。谢谢