相关: How can I set the welcome page to a struts action?
我试图将欢迎页面index.jsp重定向到一个动作(Struts2)。 相关帖子中没有任何选项适合我:
type Status report
message /malelo/indexRedir
description The requested resource (/malelo/indexRedir) is not available.
我遵循 FLOW 结构:
http://localhost:8580/malelo/ SEND TO WELCOME PAGE
---> (root)index.jsp SEND USER TO (by redirect, I need forward)
---> (indexRedir) IndexAction.java SEND USER TO
---> (WEB-INF/content) index-login.jsp
这有效,但不太优雅(index.jsp):
<%
response.sendRedirect("indexRedir");
%>
我试图这样做(index.jsp):
<jsp:forward page="indexRedir" />
我只使用Annotation,没有配置XML文件。
@Action (value = "indexRedir", results =
{ @Result (location = "index-login.jsp", name = "ok") } )
修改
只是为了澄清,这是一个由response.sendRedirect发送给浏览器的http标头:
HTTP/1.1 302 Found
Date: Tue, 27 May 2014 16:15:12 GMT
Location: http://cmabreu.com.br/basico/
Content-Length: 0
Connection: close
Content-Type: text/plain
此位置(http://cmabreu.com.br/basico/)指向index.jsp,其中包含:
<%
response.sendRedirect("indexRedir");
%>
显示indexRedir action指向的JSP页面的内容。 Google网站管理员工具和一些机器人不会关注此类网页。
在此处查看更多内容:http://en.wikipedia.org/wiki/HTTP_302
答案 0 :(得分:4)
要转发操作,您必须配置过滤器以便向前运行;通常它们没有,尽管这是依赖于容器的。例如,在Tomcat下:
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher> <!-- If you want includes as well -->
</filter-mapping>
就个人而言,我没有发现重定向特别不优雅,而且非常标准。
另一个好处是,您可以将人们引入基于动作的应用程序;使用转发您的网址不会更改。通常,您希望禁止基于JSP的URL。