我在angular 7中开发了应用程序。它是一个旧版应用程序,也支持jsp页面。当前,当我尝试调用index.jsp页面时,它会自动重定向到index.html。我无法调用任何jsp页面。它们都在同一基本href下。该应用程序已部署在Websphere上。
上下文URL是门户网站
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_1.xsd" version="1.1">
<reload-interval value="3"/>
<context-root uri="portal" />
<enable-directory-browsing value="false"/>
<enable-file-serving value="true"/>
<enable-reloading value="true"/>
<enable-serving-servlets-by-class-name value="false"/>
</web-ext>
我同时拥有index.jsp和index.html。 web.xml中的欢迎文件列表指向index.html在web.xml中,我有多个网址格式
<web-resource-collection>
<web-resource-name>action</web-resource-name>
<description />
<url-pattern>/manage.do</url-pattern>
<url-pattern>/save.do</url-pattern>
<url-pattern>/legacy.do</url-pattern>
<url-pattern>/acts.do</url-pattern>
</web-resource-collection>
对于我拥有的index.html页面
我还在app-routing-module.ts中配置了应用程序路由
const routes: Routes = [
{ path: 'manage.do', redirectTo : '/index.jsp', pathMatch : 'full'},
];
[每当我将网址称为https://localhost:9443/portal/或https://localhost:9443/portal/index.html时,转到index.html
但是当我打电话给https://localhost:9443/portal/index.jsp或https://localhost:9443/portal/manage.do时,它仍然始终重定向到index.html。
但是我需要它来调用jsp页面并重定向到旧代码,任何人都有任何建议
首先要知道,redirectTo : '/index.jsp'
不允许用户导航到index.jsp
page,但这意味着重定向到'/index.jsp'path 在“路线”数组中定义。
我的意思是redirectTo的工作方式如下:
const routes: Routes = [
{ path: 'manage.do', redirectTo : 'index', pathMatch : 'full'},
{ path: 'index', component: MyIndexComponent},
];
这意味着,如果'routes'数组中有一些路径项,则redirectTo可以正常工作。
现在,对于解决方案,我建议您通过编写JavaScript代码将用户导航到.ts
文件中的index.jsp页面,如下所示:
const routes: Routes = [
{ path: 'manage.do', redirectTo : 'index-jsp', pathMatch : 'full'},
{ path: 'index-jsp', component: MyIndexJspComponent},
];
并像这样创建一个组件作为MyIndexJspComponent:
import { Component, OnInit } from '@angular/core';
@Component({
templateUrl: '<div></div>',
styleUrls: [],
})
export class MyIndexJspComponent implements OnInit {
constructor() { }
ngOnInit() {
window.location.href = "/index.jsp";
}
}
现在,这适用于Angular项目体系结构,所有这些都对您而言正确。现在,用户可以在任何地方调用“ manage.do”,并转到index.jsp。
P.S .:我不确定在开发模式下是否一切正常。但是希望可以在prod模式下使用。