如何使用JavaScript函数重定向到Struts2中的另一个jsp页面

我想在打开BeforeLogin页面时使用JavaScript函数将我的jsp重定向到另一个jsp页面。 但我收到以下错误消息。

找不到Struts调度程序。 这通常是由于使用没有关联filter的Struts标记引起的。 Struts标记仅在请求通过其servletfilter时可用,该filter初始化此标记所需的Struts调度程序。

我不知道该怎么做。

https://stackoverflow.com/questions/36273309/how-to-redirect-to-another-jsp-page-in-struts2-by-using-javascript-function/BeforeLogin.jsp:

 function newpage(){ window.open("Login.jsp"); }  click here to login  

Login.jsp页面:

     <s />    .....  

web.xml中:

  DispatcherFilter  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter    DispatcherFilter /*  

struts.xml中:

   Login.jsp  

创建无操作的结果并使用它而不是JSP。

struts.xml中:

  Login.jsp  

JS:

 function newpage(){ window.open("showLogin"); } 

说明:

错误清楚地表明了这一点

这通常是由于使用没有关联filter的Struts标记引起的

这意味着你内部有一个JSP和Struts标签,但filter不使用这个JSP,因为它可能是一个欢迎文件,即index.jsp ,错误代码文件,即404.jsp ,在web.xml配置web.xml

在涉及映射到资源的任何filter或servlet之前,Web服务器将处理这些资源。

通常,欢迎文件包含重定向代码到有效操作,然后调度到可以具有Struts标记的JSP。 不要在应用程序中直接使用JSP,而是使用操作。

创建此错误是因为您正在调用一个尝试使用Struts标记的JSP而没有先通过操作,因此找不到所需的底层结构。

Struts2是一个MVC框架,其设计意味着新请求必须通过(C)ontroller(动作),然后通过(V)iew(JSP)呈现。

您必须避免直接调用JSP,您必须调用登录操作,在执行后将调度登录JSP。

 window.open("login.action");