代码
<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>
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="user" type="org.layout.model.User"/>
</form-bean>

<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>在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());
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是不是合并或者在哪个层面上进
行转换。
2074

被折叠的 条评论
为什么被折叠?



