【问题标题】:response.sendRedirect not working in Struts2 tilesresponse.sendRedirect 在 Struts2 瓦片中不起作用
【发布时间】:2012-04-09 15:38:44
【问题描述】:

我正在开发一个带有磁贴的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 中,但不工作

【问题讨论】:

  • 我看到了a similar question,但解决方案在这里不起作用
  • 您可以使用结果类型redirectAction并调用搜索操作并将所需的参数传递给操作。
  • @MohanaRaoSV,对不起,我不明白方法,请举个例子
  • @SarinJacobSunny:只有在使用瓷砖或简单的 S2 应用程序时才会遇到这个问题?抱歉有点懒得看细节;)
  • 它可能有效,但它的设计是否正确?

标签: jsp struts2 struts tiles response.redirect


【解决方案1】:

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

使用 struts2,您将返回一个图块结果类型。这要么在您的 struts.xml 中定义,要么对动作进行注释以产生此结果。

您要重定向的操作不应返回磁贴结果类型,而是返回重定向/redirectAction 类型。对于这些结果之一,请参见此处:Action redirect in struts.xml

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

您指出的问题 (here) 可能仍然适用于这种情况。也就是说,如果您已编写内容,则无法重定向,并且您可以在编写任何其他内容之前尝试重定向并返回,但磁贴通常由多个视图组成......并且将继续写入 HTTP 响应,因此可能会使重定向无效.如果您只有一个 jsp 组成视图,那么我不知道。但再一次,我根本不会考虑调用图块。

【讨论】:

  • search 和 guestprofile 是 struts.xml 和 tiles.xml 中的有效映射,我都在同一个项目中使用超链接。
  • 现在我使用 meta 作为使功能正常工作的临时方法,实际上我需要的是 Response.sendRedirect 本身。由于它不起作用,我不得不寻找一种临时方法。
  • 如果我加载使用 Response.sendRedirect 的页面,它可以正常工作,但如果该页面进入流(如从其他页面按顺序)。它不工作。
  • 除非我遗漏了什么,否则答案都涵盖了这一切,包括为什么它不能作为“流程”的一部分工作。
  • 我试过这样 response.sendRedirect("viewuniqueRedirect");在页面和 viewunique 在 struts.xml 中,但不起作用
猜你喜欢
  • 2012-04-18
  • 1970-01-01
  • 2012-05-31
  • 1970-01-01
  • 2015-07-15
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
相关资源
最近更新 更多