質問編集履歴

1

コードの追加

2016/10/08 13:24

投稿

naomi3
naomi3

スコア1105

test CHANGED
File without changes
test CHANGED
@@ -6,11 +6,109 @@
6
6
 
7
7
  ・errorPage="exception.jsp"とisErrorPage="true"を使って、暗黙のオブジェクトexceptionを有効にし、エラーメッセージとスタックトレースを表示できました。
8
8
 
9
+ ```JSP
10
+
11
+ <p>エラーメッセージ</p>
12
+
13
+ <%= exception.getMessage() %>
14
+
15
+ <p>詳細</p>
16
+
17
+ <% for (StackTraceElement element : exception.getStackTrace()) { %>
18
+
19
+ <%= element.toString() %>
20
+
21
+ <% } %>
22
+
23
+ ```
24
+
25
+ ・ActionEventListenerを実装したクラスで、Actionでの例外を捕捉しHashMapで"exception"と名付けてValueStackにpushし、
26
+
27
+ ```Java
28
+
29
+ @Results({
30
+
31
+ @Result(name="exception", value="exception.jsp")
32
+
33
+ })
34
+
35
+ public class SampleAction extends ActionSupport {
9
36
 
10
37
 
38
+
39
+ public String execute() throws Exception {
40
+
11
- ・ActionEventListenerを実装したクラスで、Actionでの例外を捕捉しHashMapで"exception"と名付けてValueStackにpushし、例外表示JSPに遷移、Struts2カスタムタグを使ってエラーメッセージとスタックトレースを表示できました。
41
+ throw new Exception("意図的な例外");
42
+
43
+ }
44
+
45
+ }
12
46
 
13
47
 
48
+
49
+
50
+
51
+ public class SampleActionEventListener implements ActionEventListener {
52
+
53
+
54
+
55
+ @Override
56
+
57
+ public Object prepare(Object action, ValueStack stack) {
58
+
59
+
60
+
61
+ return action;
62
+
63
+ }
64
+
65
+
66
+
67
+ /*
68
+
69
+ * 例外発生時の制御。
70
+
71
+ */
72
+
73
+ @Override
74
+
75
+ public String handleException(Throwable thrown, ValueStack stack) {
76
+
77
+
78
+
79
+ HashMap<String, Throwable> namedThrown = new HashMap<String, Throwable>();
80
+
81
+ namedThrown.put("exception", thrown);
82
+
83
+ stack.push(namedThrown);
84
+
85
+
86
+
87
+ return "exception";
88
+
89
+ }
90
+
91
+ }
92
+
93
+ ```
94
+
95
+ 例外表示JSPに遷移、Struts2カスタムタグを使ってエラーメッセージとスタックトレースを表示できました。
96
+
97
+ ```JSP
98
+
99
+ <p>エラーメッセージ</p>
100
+
101
+ <s:property value="%{exception.message}" />
102
+
103
+ <p>詳細</p>
104
+
105
+ <s:iterator value="%{exception.stackTrace}">
106
+
107
+ <s:property value="%{toString()}" />
108
+
109
+ </s:iterator>
110
+
111
+ ```
14
112
 
15
113
  エラーメッセージとスタックトレースの表示のコードはいずれもわずか数行ですが、Struts2カスタムタグを使う方に統一したいと思っています。
16
114