如何使用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页面:
.....
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");