struts DynaActionForm 使用心得

本人很懒,相当懒,一个方法能写一遍绝不写两遍。

而普通的ActionForm必须要在自己写好多get 、set方法,很烦,幸好有DynaActionForm解脱了我。

但是今天想使用DynaActionForm传对象的时候碰到问题了,准确点说就是我希望DynaActionForm实现如下的功能:
public class UserActionForm extends Actions{
private User user;
public User getUser();
public User setUser();
}
可是我不知道DynaActionForm能不能传对象,还是只能传一些普通的类型。查找http://struts.apache.org/的User Guide,上面说

The types supported by DynaActionForm include:

  • java.math.BigDecimal
  • java.math.BigInteger
  • boolean and java.lang.Boolean
  • byte and java.lang.Byte
  • char and java.lang.Character
  • java.lang.Class
  • double and java.lang.Double
  • float and java.lang.Float
  • int and java.lang.Integer
  • long and java.lang.Long
  • short and java.lang.Short
  • java.lang.String
  • java.sql.Date
  • java.sql.Time
  • java.sql.Timestamp
我晕了,难道不行。

不死心,查找Struct in Action里面又说:
“你可以在使用ActionForm 的任何地方使用DynaActionForm”。搞得我很迷惑。

最后的结论是:可以的。经过我一天的试验。
user.jsp如下写:
        <html:form action="/shangJia">
            name : <html:text name="userForm" property="user.name" />
            <html:errors property="name" />
            street : <html:text name="userForm" property="user.name" />
            <html:errors property="street" />
            phone : <html:text name="userForm" property="user.name" />
            <html:errors property="phone" />
            <br />
            <html:submit />
            <html:cancel />
        </html:form>
struts-config.xml如下写:
    <form-beans>
        <form-bean name="userForm" type="org.apache.struts.action.DynaActionForm">
            <form-property name="shangJia" type="com.test.Hibernate.User" />
        </form-bean>
    </form-beans>
    <action-mappings>
        <action attribute="userForm" input="/user.jsp" name="newShangJiaForm" path="/user" scope="request" type="com.web669.Hibernate.ShangJiaAction" />
    </action-mappings>
UserAction.java如下写:
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        DynaActionForm shangJiaForm = (DynaActionForm) form;
        User user = (User) shangJiaForm.get("user");
        userDAO.save(user);
        return mapping.findForward("indexGO");
    }
即可。方便啊 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值