Posted on 2006-03-01 17:27
Terry的Blog 閱讀(971)
評論(0) 編輯 收藏 所屬分類:
java語言 、
web開發
以前我轉載過一篇“介紹struts的新特性:Lazy ActionForm“
http://www.tkk7.com/terry-zj/archive/2005/12/09/23090.html
這篇文章里面介紹的方法大大較少了ActionForm中的編碼工作,但是這個Lazy ActionForm在struts1.1的時候還沒有。如果既要使用struts1.1又想Lazy一下那?(實際上struts1.1還是目前使用比較多的版本)
其實少量的代碼就可以讓普通的Form接近Lazy ActionForm的效果。
?jsp中寫:
??????? <table align="center" border="0" width="300">
??????????????? <tr>
??????????????????? <td align="right" width="35%">
??????????????????????? 用戶ID:
??????????????????? </td>
??????????????????? <td width="65%">
??????????????????????? <html:text property="data(username)" size="20" maxlength="20" />
??????????????????? </td>
??????????????? </tr>
??????????????? <tr>
??????????????????? <td align="right">
??????????????????????? 密碼:
??????????????????? </td>
??????????????????? <td>
??????????????????????? <html:text property="data(password)" size="20" maxlength="10" />
??????????????????? </td>
??????????????? </tr>
??????????????? <tr>
??????????????????? <td>
???????????????????????
??????????????????? </td>
??????????????????? <td>
??????????????????????? <html:button property="login" value="確認" onclick="submitForm();" />
???????????????????????
??????????????????????? <html:reset value="清空" />
??????????????????? </td>
??????????????? </tr>
??????????? </table>
LoginAction中寫:
public ActionForward doAction(ActionMapping mapping,
????????????????????????????????? RequestContext req) {
??????? String forward = "menu";
??????? BaseForm frm = (BaseForm)req.getForm();
??????? System.out.println(frm.get("username"));
??????? System.out.println(frm.get("password"));
??????? //?......????????
??????? return mapping.findForward(forward);
}
BaseForm中寫:
public class BaseForm extends ActionForm {
????private HashMap data = new HashMap();
??? public HashMap getData() {
???? ??? return data;
??? }
??? public void setData(HashMap data) {
??????? this.data = data;
??? }
??? public String get(String key) {
??????? return (String) data.get(key);
??? }
??? public void set(String key, Object value) {
??????? data.put(key, value);
??? }
}
struts-config.xml中寫:
?<form-beans>
??? <form-bean?????? name="baseform"???? type="com.web.system.base.BaseForm"/>
? </form-beans>