2016-03-29 7 views
1

Ich möchte meine JSP auf andere JSP-Seite mit JavaScript-Funktion umleiten, wenn ich die BeforeLogin Seite öffnen. Aber ich habe unten Fehlermeldung erhalten.Umleiten zu einer anderen JSP-Seite in Struts2 mit JavaScript-Funktion

Der Struts Dispatcher kann nicht gefunden werden. Dies wird normalerweise durch Verwendung des Struts-Tags ohne den zugehörigen Filter verursacht. Struts-Tags können nur verwendet werden, wenn die Anfrage ihren Servlet-Filter durchlaufen hat, der den Struts-Dispatcher initialisiert, der für dieses Tag benötigt wird.

Ich bin mir nicht sicher, was zu tun ist.

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> 

Antwort

0

Erstellen Sie ein aktionsloses Ergebnis und verwenden Sie es anstelle von JSP.

struts.xml:

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

JS:

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

Erläuterung:

Der Fehler sagt deutlich, dass

Dieses

wird in der Regel unter Verwendung von Struts-Tags ohne die zugehörigen Filter

verursacht es bedeutet, dass Sie eine JSP und Struts-Tags im Inneren, aber diese JSP nicht durch den Filter verwendet, weil es eine sein könnte Willkommensdatei, dh index.jsp, Fehlercodedatei, dh 404.jsp, konfiguriert in web.xml.

Diese Ressourcen werden vom Webserver verarbeitet, bevor ein Filter oder ein Servlet, die der Ressource zugeordnet sind, beteiligt sind.

Normalerweise enthalten Willkommensdateien einen Weiterleitungscode zu einer gültigen Aktion, die dann an eine JSP gesendet wird, die Struts-Tags haben kann. Verwenden Sie JSPs nicht direkt in Ihrer Anwendung, sondern verwenden Sie stattdessen Aktionen.

1

Dieser Fehler erstellt wird, weil Sie eine JSP sind aufrufen, die Struts-Tags zu verwenden versucht, ohne vorher durch eine Aktion durchlaufen hat und somit nicht die erforderliche zugrunde liegende Struktur zu finden.

Struts2 ist ein MVC-Framework, dessen Entwurf impliziert, dass eine neue Anfrage einen (C) ontroller (die Aktion) durchlaufen muss und dann durch eine (V) iew (die JSP) gerendert werden muss.

Sie müssen vermeiden, JSPs direkt aufzurufen, Sie müssen stattdessen die Login-Aktion aufrufen, die nach ihrer Ausführung die Login-JSP versendet.

window.open("login.action");