我想在打开BeforeLogin页面时使用JavaScript函数将jsp重定向到另一个jsp 页面。但我得到以下错误信息。
BeforeLogin
找不到Struts调度程序。这通常是由于使用不带关联过滤器的Struts标记引起的。仅当请求已通过其Servlet过滤器(该过滤器初始化此标签所需的Struts调度程序)时,Struts标记才可用。
我不确定该怎么办。
BeforeLogin.jsp:
function newpage(){ window.open("Login.jsp"); } <body onLoad="goNewWin()"> <a href="BeforeLogin.jsp">click here to login</a> </body>
Login.jsp:
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title> <s:text name="Login"/> </title> </head> <body> ..... </body>
web.xml:
<filter> <filter-name>DispatcherFilter</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>DispatcherFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
struts.xml:
<package name="struts2" namespace="/" extends="struts-default"> <action name="login" class="com.action.LogonAction"> <result name="input">Login.jsp</result> </action>
创建不采取行动的结果,并使用它代替JSP。
<action name="showLogin"> <result>Login.jsp</result> </action>
JS:
function newpage(){ window.open("showLogin"); }
说明:
该错误清楚地表明
这通常是由于使用不带相关过滤器的Struts标记引起的
这意味着您内部有一个JSP和Struts标记,但是过滤器不使用此JSP,因为它可能是一个欢迎文件,即index.jsp错误代码文件,即404.jsp在中配置的web.xml。
index.jsp
404.jsp
web.xml
在涉及映射到该资源的任何过滤器或Servlet之前,Web服务器将处理这些资源。
通常,欢迎文件包含一个指向有效动作的重定向代码,然后将其分配给可以具有Struts标记的JSP。 不要在应用程序中直接使用JSP,而应使用操作。