编写一个Struts2 Action时,涉及几个部分:
1、Mapping一个action到一个类。
2、Mapping一个result到一个view
3、在Action类中编写控制逻辑
Action Mapping:
<
action
name
=
"hello"
class
=
"org.apache.struts.helloworld.action.HelloWorldAction"
method
=
"execute"
>
<
result
name
=
"success"
>/HelloWorld.jsp</
result
>
</
action
>
Struts2 Action Classes
Action类在MVC开发模式中,扮演着控制器的作用。Action类响应一个用户action,执行业务逻辑,然后返回一个result并告诉Struts显示什么。
Struts2 Action类通常继承ActionSupport类,它是由Struts2 Framework框架提供。类ActionSupport提供缺省继承大部分的公共actions,并且也实现一些有用的Struts2接口。当你的Action类继承ActionSupport,你能重写缺省的继承或者是继承他们。
Processing Form Input In the Action Class
Action类的众多功能职责之一是去处理输入方式,然后使处理的result对应到view 页面。
在index.jsp中添加如下代码:
<
s:form
action
=
"hello"
>
<
s:textfield
name
=
"userName"
label
=
"Your name"
/>
<
s:submit
value
=
"Submit"
/>
</
s:form
>
在类HelloWorldAction中,添加如下代码:
private
String userName;
public
String getUserName() {
return
userName;
}
public
void
setUserName(String userName) {
this
.userName = userName;
}
对于个人的MessageStore message添加如下java代码到HelloWorldAction's execute方法,Add userName value to message
if
(userName !=
null
) {
messageStore.setMessage( messageStore.getMessage() +
" "
+ userName);
}
|
部署项目:http://localhost:8080/Coding_Struts2_Actions/index.action
当点击Submit时,struts将调用HelloWorldAction类中匹配的格式输入名字的任何方法。因此在这个例子方法中,setUserName被调用并且通过用户输入的值在UserName field。