[转帖]Struts解决ActionForm、Action过多问题_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3739 | 回复: 0   主题: [转帖]Struts解决ActionForm、Action过多问题        下一篇 
white
注册用户
等级:少校
经验:1327
发帖:305
精华:0
注册:2011-7-21
状态:离线
发送短消息息给white 加好友    发送短消息息给white 发消息
发表于: IP:您无权察看 2011-8-26 9:27:10 | [全部帖] [楼主帖] 楼主

1、 解决Action过多问题

    通过DispatchAction的方式建立一个继承自DispatchAction的Action此类Action允许我们在表单中带有参数,根据参数执行Action中的不同方法,以此实现Action的多用

    步骤

    ① 建立一个继承自DispatchAction的Action规定方法名称

    ② 在表单页面中添加一个隐藏域值,假设为codi value=”insert”

    ③ 在Struts-config.xml的相应Form中action项目中设置parameter参数值为codi

    那么当表单提交的时候,Action中的insert()方法就会被执行,可以通过改隐藏域中的值的方式来改变Action要执行的方法

    2、 解决ActionForm过多的问题

    通过动态ActionForm的方式,即DynaActionForm

    步骤

    ① 在Struts-config.xml

<form-beans> <form-bean name=”abcForm” type=”org.apache.struts.action.DynaActionForm”> <form-property name=”userid” type=”java.long.String”></form-property> </form-bean> </form-beans>

    ② 在Struts-config.xml

    更改相应的action中的attribute和name为abcForm

    这样就配置好了一个动态的ActionForm

    3、 解决动态ActionForm的验证问题

    通过动态验证ActonForm的方式,即DynaValidatorForm

    步骤

    ① 在Struts-config.xml

    同2的第一步,但是type需要改成org.apache.struts.action.DynaValidatorForm

    ② 配置一个validation.xml文件

<form-validation> <formset> <form name="abcForm"> <field property="userid" depends="required"> <arg key="err.userid" resource="true"/> </field> </form> </formset> </form-validation>

    ③ 在Struts资源文件中配置err.userid、以及errors.required

    ④ 在Struts-config.xml配置相应的action,添加validate=”true”添加验证支持

    ⑤ 添加struts Plugin插件,设置plugin class为org.apache.struts.validator.ValidatorPlugIn

    添加propertys

Property->pathnames
Value->/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml


  这样一个验证框架就配置好了!




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论