Struts2 JSP页面加载时通过s:action获取数据
时间: 2024-10-14 09:04:25 浏览: 40
详解Struts2中对未登录jsp页面实现拦截功能
在Struts2中,要实现在JSP页面加载的同时通过`<s:action>`标签从Action获取数据,通常的做法是定义一个Action,这个Action负责执行特定的操作并可能返回数据。以下是基本步骤:
1. 创建Action类:创建一个名为`StudentAction`的Action类,该类继承自`ActionSupport`,并在`execute()`方法中处理业务逻辑和数据操作[^2]。
```java
// StudentAction.java
public class StudentAction extends ActionSupport {
// 假设我们有一个List<Student>来存储学生信息
private List<Student> students;
// 这里可以添加获取、处理和设置学生列表的方法
@Override
public String execute() throws Exception {
// 执行业务逻辑,比如从数据库查询学生数据
this.students = getStudentsFromDatabase();
// 设置数据到模型(Model),以便传给JSP
setStudents(students);
return "success"; // 返回的结果,对应success.jsp页面
}
// 其他getter和setter方法...
}
```
2. 使用`<s:action>`标签:在JSP页面中,你可以使用`<s:action>`标签调用Action,同时指定结果属性`result`指向`success`,这样当Action执行成功时,就会跳转到`success.jsp`页面,该页面可以通过`<s:iterator>`或其他标签遍历从Action传递过来的学生列表[^1]。
```jsp
<!-- student_list.jsp -->
<s:form action="StudentAction" method="post">
<s:action result="success" />
<!-- 页面其他元素... -->
</s:form>
<!-- success.jsp -->
<table>
<s:iterator value="students">
<tr>
<td>${student.name}</td>
<td>${student.email}</td>
</tr>
</s:iterator>
</table>
```
阅读全文