我正在开发一个带有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(使用前将#替换为@)