随笔 - 9, 文章 - 0, 评论 - 3, 引用 - 0
数据加载中……

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>
在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 空杯 阅读(320) 评论(0)  编辑  收藏 所属分类: Struts


只有注册用户登录后才能发表评论。


网站导航: