虽然Struts中的业务处理部分是Action负责的,但真正起作用的业务控制器不是用户定义的Action而是系统自动生成的Action代理,但该代理以用户定义的Action为目标
废话不多说,上代码:
public class LoginAction
{
private String uname;
private String upwd;
//getter方法
public String getuname()
{
return uname;
}
public String getupwd()
{
return upwd;
}
//setter方法
public void setuname(String uname)
{
this.uname=uname;
}
public void setupwd(String upwd)
{
this.upwd=upwd;
}
//处理用户请求的execute方法,自动执行,并将结果通过配置文件的result标签映射到相应的JSP页面
public String execute() throws Exception
{
if ( getuname().equals("LiLei") && getupwd().equals("HanMeiMei"))
{
return "success";
}
else
{
return "false";
}
}
}
当用户提交文本框时,控制器调用该类进行处理
可以发现在通篇的代码中没有任何一个request方法,也就是说structs获取参数的方式是隐式的。
也就是说自动将文本框中的数据根据文本框的name属性查找Action中相应的变量名,然后通过setter方法将其值传递给Action的相应变量实现数据的传递方式。