Struts2 中实现HTML页面跳转的具体方法是什么?
- 前端开发
- 2025-09-15
- 8
在Struts2框架中,跳转HTML页面主要有两种方式:一种是使用<s:redirect>标签,另一种是通过重定向(Redirect)方法,以下是详细的说明和示例。
使用 <s:redirect>
s:redirect 标签用于在JSP页面中实现页面跳转,以下是一个简单的示例:

在这个例子中,当用户点击提交按钮时,会跳转到success.jsp页面。
通过重定向方法
在Action类中,可以使用sendRedirect方法实现页面跳转,以下是一个示例:
package com.example.action; import com.opensymphony.xwork2.ActionSupport; public class MyAction extends ActionSupport { public String execute() { // 执行业务逻辑 // ... // 重定向到success.jsp页面 return "success"; } }
在struts.xml配置文件中,你需要添加以下配置:

在这个例子中,当Action执行完成后,会跳转到success.jsp页面。
表格对比
| 方法 | 优点 | 缺点 |
|---|---|---|
| <s:redirect> | 简洁易用,可以直接在JSP页面中实现跳转 | 只能在JSP页面中使用,不能在Action类中使用 |
| 重定向方法 | 可以在Action类中使用,更加灵活 | 需要在struts.xml中配置result,稍微复杂一些 |
FAQs
Q1:使用s:redirect标签后,如何获取跳转后的参数?

A1:你可以使用ActionContext来获取跳转后的参数,以下是一个示例:
package com.example.action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class MyAction extends ActionSupport { public String execute() { // 获取跳转后的参数 Map<String, Object> session = ActionContext.getContext().getSession(); String parameter = (String) session.get("parameter"); // 使用参数 // ... return "success"; } }
Q2:在Action类中使用重定向方法时,如何获取跳转后的参数?
A2:在Action类中使用重定向方法时,无法直接获取跳转后的参数,你可以通过在跳转页面中设置参数,然后在跳转后的页面中获取这些参数,以下是一个示例:
package com.example.action; import com.opensymphony.xwork2.ActionSupport; public class MyAction extends ActionSupport { public String execute() { // 设置跳转后的参数 Map<String, Object> session = ActionContext.getContext().getSession(); session.put("parameter", "value"); // 重定向到success.jsp页面 return "redirect:success.jsp"; } }
在success.jsp页面中,你可以通过以下方式获取参数:
<%@ page contentType="text/html;charset=UTF8" language="java" %> <html> <head>Success Page</title> </head> <body> <% String parameter = (String) session.getAttribute("parameter"); out.println("Parameter: " + parameter); %> </body> </html>