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");
    }
即可。方便啊 
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fenixshadow/article/details/1799312
上一篇ORA 02436 sysdate oracle
下一篇Spring + Hibernate 数据访问策略
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭