/ / Como redirecionar para outra página jsp no Struts2 usando a função JavaScript - java, jsp, configuration, struts2, web.xml

Como redirecionar para outra página jsp no Struts2 usando a função JavaScript - java, jsp, configuration, struts2, web.xml

Quero redirecionar meu jsp para outra página jsp usando a função JavaScript quando abrir o BeforeLogin página. Mas eu recebi a mensagem de erro abaixo.

O distribuidor do Struts não pode ser encontrado. Isso geralmente é causado pelo uso da tag Struts sem o filtro associado. As tags Struts só podem ser usadas quando a solicitação passou por seu filtro de servlet, que inicializa o distribuidor Struts necessário para essa tag.

Não estou certo do que fazer.

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>

Respostas:

0 para resposta № 1

Crie um resultado sem ação e use-o em vez de JSP.

struts.xml:

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

JS:

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

Explicação:

O erro diz claramente que

Isso geralmente é causado pelo uso de tags Struts sem o filtro associado

significa que você possui uma tag JSP e Struts, mas essa JSP não é usada pelo filtro, pois pode ser um arquivo de boas-vindas, ou seja, index.jsp, arquivo de código de erro, ou seja, 404.jsp, configurado no web.xml.

Esses recursos são manipulados pelo servidor da web antes de qualquer filtro ou servlet mapeado para o recurso estar envolvido.

Os arquivos de boas-vindas geralmente contêm um código de redirecionamento para uma ação válida que é enviada para um JSP que pode ter tags Struts. Não use JSPs diretamente em seu aplicativo, use ações.


1 para resposta № 2

Este erro foi criado porque você está chamando um JSP que está tentando usar as tags Struts sem ter passado por uma ação primeiro e, portanto, sem encontrar a estrutura subjacente necessária.

Struts2 é uma estrutura MVC, cujo design implica que uma nova solicitação deve passar por um ontroller (C) (a ação) e depois ser renderizada por uma visualização (V) (o JSP).

Você deve evitar chamar JSPs diretamente, deve chamar a ação de login, que após sua execução despachará o JSP de login.

window.open("login.action");