steps1-->Struct2-控制器组件
所有MVC框架都是以控制器组件为核心的,struts2也是如此。
Struts 2的控制器由两个部分组成:FilterDispatcher和业务控制器Action。
值得注意的是:实际上,Struts 2应用中起作用的业务控制器不是用户定义的Action,而是系统生成的Action代理,但该Action代理以用户定义的Action为目标。
public class LoginAction
{
//封装用户请求参数的username属性
private String username;
//封装用户请求参数的password属性
private String password;
//username属性的getter方法
public String getUsername()
{
return username;
}
//username属性的setter方法
public void setUsername(String username)
{
this.username = username;
}
//password属性的getter方法
public String getPassword()
{
return password;
}
//password属性的setter方法
public void setPassword(String password)
{
this.password = password;
}
//处理用户请求的execute方法
public String execute() throws Exception
{
//如果用户名为scott,密码为tiger,则登录成功
if (getUsername().equals("scott")
&& getPassword().equals("tiger"))
{
return "success";
}
else
{
return "error";
}
}
}
通过查看上面的Action代码,发现该Action比WebWork中的Action更彻底,该Action无需实现任何父接口,无需继承任何Struts 2基类,该Action类完全是一个POJO(普通、传统的Java对象),因此具有很好的复用性。
归纳起来,该Action类有如下优势:
— Action类完全是一个POJO,因此具有很好的代码复用性。
— Action类无需与Servlet API耦合,因此进行单元测试非常简单。
— Action类的execute方法仅返回一个字符串作为处理结果,该处理结果可映射到任何的视图,甚至是另一个Action。
浙公网安备 33010602011771号