我们在上一章节中的一个列子中使用到了一个标识跳转到登录页面的例子:
示例是这样写的:
index.jsp:
这里表示要调转到登录login.jsp页面,不过这个跳转是一个action。
在struts.xml中对应注册:
1
2
3
4
5
不错,这里就是这么写的。在index.jsp页面中点login page连接确实跳转到了登录页面login.jsp。
为什么在struts.xml中缺省的class是“com.opensymphony.xwork2.ActionSupport”,而缺省的method又是“execute”呢?
这和struts.xml中的package有关系:
我们看到这里边
在struts2-core-2.3.28.jar包的根目录下,包含了一个struts-default.xml的配置文件,在该文件中声明的有一个package叫struts-default。
我们将struts-default package定义节点拷贝出来分析下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 input,back,cancel,browse
129
130
131 input,back,cancel,browse
132
133
134
135
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164 input,back,cancel,browse
165
166
167 input,back,cancel,browse
168
169
170
171
172
173
176
177
178
179
180
182
183
184 input,back,cancel
185
186
187
188 input,back,cancel
189
190
191
192
193
194
195
196
197
这里边都包含了:返回类型,拦截器,拦截器栈,默认的拦截器栈,Action默认的class。
不错这是这里的“
分析ActionSupport类:
public class com.opensymphony.xwork2.ActionSupport implements com.opensymphony.xwork2.Action, com.opensymphony.xwork2.Validateable, com.opensymphony.xwork2.ValidationAware, com.opensymphony.xwork2.TextProvider, com.opensymphony.xwork2.LocaleProvider, java.io.Serializable {}
ActionSupport定义实现了Action接口、Validateable抽象类、ValidateAware接口、TextProvider接口、LocalProvider接口、Serializeable接口。
1、Action抽象接口中定义了几个返回值常量SUCCESS,INPUT,ERROR,NONE,LOGIN,及一个抽象方法execute接口;
2、Validateable抽象接口类中定义了一个validate抽象方法;
3、ValidateAware抽象接口类中定义
hasActionErrors,hasActionMessages,hasErrors,hasFieldErrors,
addActionError,addActionMessage,addFieldError,
getFieldErrors,getFieldErrors,
setActionMessages,getActionMessages,
setActionErrors,getActionErrors
4、TextProvider,LocalProvider抽象接口类是实现国际化使用的。
从上边ActionSupport定义,得知如果我们要想使用验证,或者国际化等最好是在定义Action时继承ActionSupport类。