FormBean 與 POJO 的集成
代碼
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">

<form-property name="user" type="org.layout.model.User"/>

</form-bean>
在校驗文件validation.xml中:
代碼
<form name="loginForm">
<field property="user.name" depends="required,minlength,maxlength">
<arg0 key="label.username"/>
<arg1 key="${var:minlength}" name="minlength" resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>2</var-value>
</var>
</field>
<field property="user.password"
depends="required,minlength,maxlength">
<arg0 key="label.password"/>
<arg1 key="${var:minlength}" name="minlength" resource="false"/>
<arg2 key="${var:maxlength}" name="maxlength" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>16</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>2</var-value>
</var>
</field>
</form>






在校驗文件validation.xml中:
代碼





























在action中如下調用:
代碼
DynaActionForm aForm = (DynaActionForm)form;
ActionMessages messages = form.validate(mapping, request);
if(!messages.isEmpty())
{
saveMessages(request, messages);
return mapping.findForward("prompt");
}
User user = (User)aForm.get("user");
UserDAO userDAO = (UserDAO)getWebApplicationContext().getBean("userDAO");
user = userDAO.get(user.getName(), user.getPassword());
代碼











其實這樣子的集成感覺很不錯的,除了少了dto和轉換(至少你要用一個copyProperty吧),pojo實現了序列化,
甚至可以直接深入到Hibernate底層,這樣子就省缺了以前一直討論formbean和po是不是合并或者在哪個層面上進
行轉換。
posted on 2007-10-29 15:54 空杯 閱讀(327) 評論(0) 編輯 收藏 所屬分類: Struts