Jsp response.sendRedirect在Struts2磁贴中不工作

Jsp response.sendRedirect在Struts2磁贴中不工作,jsp,struts2,struts,tiles,response.redirect,Jsp,Struts2,Struts,Tiles,Response.redirect,我正在开发一个带有tiles的struts2项目,在该项目中,我想使用关键字从一个jsp页面重定向到另一个页面,如下所示: <% response.sendRedirect("search"); %> 但是当我使用瓷砖时,它不起作用 当我直接运行页面时,它会重定向,但当我调用其他页面时,它不会重定向。我尝试了没有任何其他编码的空白html页面的代码,但仍然不起作用 “search”是struts.xml页面中操作的名称。是否需要在response.sendRe

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

   <%
    response.sendRedirect("search");
    %>
但是当我使用瓷砖时,它不起作用

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

“search”是struts.xml页面中操作的名称。是否需要在response.sendRedirect中添加其他属性

目前我正在使用

<META HTTP-EQUIV="Refresh" CONTENT="0;URL=search">
在第页和

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

在struts.xml中,但不起作用

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

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

要重定向的操作不应返回tiles结果类型,而应返回redirect/redirectAction类型。有关其中一个结果,请参见此处:

您的操作应该完成所有必需的处理(如果有),并且平铺应该组成视图。如果您真的打算重定向,那么尝试编写任何视图都是一种浪费


您指出的问题()可能仍然适用于此上下文。也就是说,如果您已经编写了内容,则无法重定向,您可以在编写任何进一步的内容之前尝试重定向并返回,但平铺通常是从多个视图组成的。。。并将继续写入HTTP响应,因此重定向可能为空。如果只有一个jsp组成视图,那么我不知道。但我还是不想调用tiles。

我看到了,但解决方案在这里不起作用。您可以使用结果类型redirectAction和调用搜索操作,并将所需参数传递给操作。@MohanaRaoSV,对不起,我没有得到方法,请给我一个答复example@SarinJacobSunny:此问题仅在使用tiles或简单S2应用程序时出现?抱歉,有点懒得阅读详细信息;)它可能会工作,但它是正确的设计吗?搜索和guestprofile在struts.xml和tiles.xml中是有效的映射,我在同一个项目中使用这两个超链接。现在我使用meta作为临时方法使功能工作,实际上我需要的是Response.sendRedirect本身。因为它不起作用,所以我必须搜索一个临时方法。如果我加载使用Response.sendRedirect的页面,它会起作用,但是如果该页面以流的形式出现(与其他页面的顺序相同)。它不起作用。除非我遗漏了什么,否则答案中会包括这一切,包括为什么它不作为“流”的一部分起作用。我试着这样回答。sendRedirect(“viewuniqueRedirect”);在页面和视图中struts.xml中是唯一的,但不起作用
 <%    
    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>