Struts2でセッション情報を扱うには、ActionクラスにSessionAwareを実装します。
java
1@Namespace("/")
2@Results({
3 @Result(name=ActionSupport.SUCCESS, location="list.jsp")
4})
5public class DisplayAction extends ActionSupport implements SessionAware {
6 @Action("/")
7 public String execute() throws Exception {
8
9 List<SampleData> list = new ArrayList<>();
10
11 list.add(new SampleData("1","aiueo"));
12 list.add(new SampleData("2","kakikukeko"));
13 list.add(new SampleData("3","sasisuseso"));
14
15 session.put("list",list);
16
17 return SUCCESS;
18 }
19
20 @Override
21 public void setSession(Map<String, Object> session) {
22 this.session = session;
23 }
24
25 private Map<String, Object> session;
26}
※見た目にわかりやすいよう、dataクラスの名前をSampleData、セッションに格納した名前を list に変えています。
SampleDataクラスはおそらく以下のようになっているかと思います。
java
1public static class SampleData {
2 private String id;
3 private String name;
4
5 public SampleDate(String id, String name) {
6 this.id = id;
7 this.name = name;
8 }
9
10 public String getId() {
11 return id;
12 }
13
14 public String getName() {
15 return name;
16 }
17}
これを表示するJSPは次のようになるでしょう。
html
1<%@ page contentType="text/html; charset=UTF-8" isELIgnored="false"%>
2<%@ taglib prefix="s" uri="/struts-tags" %>
3<html>
4<body>
5<s:iterator value="#session.list">
6 <s:property value="id"/> ,
7 <s:property value="name"/>
8 <br />
9</s:iterator>
10</body>
11</html>
12