雖然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的相應變量實現數據的傳遞方式。