【问题标题】:How to redirect to another jsp page in Struts2 by using JavaScript function如何使用JavaScript函数重定向到Struts2中的另一个jsp页面
【发布时间】:2016-07-16 08:38:04
【问题描述】:

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

找不到 Struts 调度程序。这通常是由于使用没有关联过滤器的 Struts 标签引起的。 Struts 标签仅在请求通过其 servlet 过滤器时可用,该过滤器会初始化此标签所需的 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>

【问题讨论】:

    标签: java jsp configuration struts2 web.xml


    【解决方案1】:

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

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

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

    window.open("login.action");
    

    【讨论】:

      【解决方案2】:

      创建无操作结果并使用它来代替 JSP。

      struts.xml:

      <action name="showLogin">
              <result>Login.jsp</result>
      </action>
      

      JS:

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

      说明:

      错误清楚地表明

      这通常是由于使用没有关联过滤器的 Struts 标签引起的

      表示你里面有一个JSP和Struts标签,但是这个JSP没有被过滤器使用,因为它可能是一个欢迎文件,即index.jsp,错误代码文件,即404.jsp,配置在web.xml

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多