Angular 7-从angular重定向到jsp页面

问题描述 投票:0回答:1

我在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.jsphttps://localhost:9443/portal/manage.do时,它仍然始终重定向到index.html。

但是我需要它来调用jsp页面并重定向到旧代码,任何人都有任何建议

java angular spring jsp servlets
1个回答
0
投票

首先要知道,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模式下使用。

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