response.sendRedirect 在 Struts2 磁贴中不起作用

2023-12-21

我正在开发一个带有tiles的struts2项目,其中我想使用关键字从一个jsp页面重定向到另一页面,如下所示:

   <%
    response.sendRedirect("search");
    %>

在正常的 jsp 页面中,代码的工作方式如下。

response.sendRedirect("search.jsp");

但当我与瓷砖一起使用时,它不起作用。

当我直接运行页面时,它会重定向,但是当我调用其他页面时,它不会重定向。我尝试了空白 html 页面的代码,没有任何其他编码,但它仍然不起作用。

“search”是struts.xml 页面中的操作名称。我需要在 response.sendRedirect 中添加任何额外的属性吗?

目前我正在使用

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=search">

为了做好我的工作。是否会在任何方面产生问题?

我检查了它的重定向到多个地方的条件,它的工作原理。

 <%    
    int k=0;
    if(k==1){
    %>

    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=search">
    <%
    }
    else 
    {
    %>

    <META HTTP-EQUIV="Refresh" CONTENT="0;URL=guestprofile">
    <% 
    } 
    %>

据我从答案中了解到,尝试这样

response.sendRedirect("viewuniqueRedirect"); 

在页面和

<action name="viewuniqueRedirect" > <result type="chain">viewunique</result> </action> 

在 struts.xml 中,但不起作用


您怀疑您的元标记方法非常丑陋是正确的。

使用 struts2,您将返回图块结果类型。这可以在 struts.xml 中定义,也可以对操作进行注释以产生此结果。

您想要重定向的操作不应返回图块结果类型,而应返回重定向/redirectAction 类型。对于这些结果之一,请参见此处:struts.xml 中的操作重定向 https://stackoverflow.com/questions/4956603/action-redirect-in-struts-xml/4961005#4961005

您的操作应该执行所有必需的处理(如果有),并且图块应该组成视图。如果您确实打算重定向,那么尝试组合任何视图都是浪费。

您指出的问题(here https://stackoverflow.com/questions/961124/cannot-redirect-with-the-response-sendredirect/961179#961179)可能仍然适用于这种情况。也就是说,如果您已写入内容,则无法重定向,并且您可以在写入任何进一步的内容之前尝试重定向并返回,但图块通常由多个视图组成...并且将继续写入 HTTP 响应,因此可能使重定向无效。如果你只有一个jsp组成视图,那么我不知道。但我再次认为根本不会调用图块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

response.sendRedirect 在 Struts2 磁贴中不起作用 的相关文章

随机推荐