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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值