Struts解决ActionForm、Action过多问题

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

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

时间: 2024-10-03 05:40:13

Struts解决ActionForm、Action过多问题的相关文章

Struts中的Action类的工作机制

Struts中的Action类的工作机制  所有的Action类都是org.apache.struts.action.Action的子类.Action子类应该覆写父类的execute()方法.当ActionForm Bean被创建,并且表单验证顺利通过后,Struts框架就会调用Action类的execute()方法.execute()方法的定义如下:    public ActionForward execute(ActionMapping mapping                   

提交多行数据到Struts的ActionForm的List属性中

WEB 应用中一般都会处理主从表的信息, 或者称之为头层与行层的一对多的关系数据,如订单头/订单明细. 对于这种关系数据提交到后台的 Struts 的 ActionForm 的话, 这个 ActionForm 就要好好的设计一下, 不然会给自已带来许多额外的代码. 比如有的人的处理方法就是把页面提交到后台的毫无关系的散装数据非常吃力的拼凑一对多的关系对象出来. 下面举一个如今非常现实的关于股票的例子, 简单的应用场景是: 记录某个帐户所持有的股票信息,提交到后台,然后显示出来. 输入页面如下图

怎样解决mysql连接过多的错误

问:怎样解决mysql连接过多的错误? 答:系统不能连接数据库,关键要看两个数据: 1.数据库系统允许的最大可连接数max_connections.这个参数是可以设置的.如果不设置,默认是100.最大是16384. 2.数据库当前的连接线程数threads_connected.这是动态变化的. 查看max_connections.max_connections的办法见后. 如果 threads_connected == max_connections 时,数据库系统就不能提供更多的连接数了,这时

struts跳转action 报错

问题描述 struts跳转action 报错 There is no Action mapped for action name sms_type_qunfa. - [unknown location]报这个错误 可是我在struts里已经配置了呀求大神指导 解决方案 我真的要疯了 T^T 一个多小时了 解决方案二: 你给的信息太好了,你做的是ssh的项目,还是单纯的struts项目? 提示信息给的也很明显 ,就是找不到sms...这个action 解决方案三: 肯定是访问地址输错了,直接检测一

path-jsp中action 和Struts 中的action虚拟路径问题

问题描述 jsp中action 和Struts 中的action虚拟路径问题 <html:form action=""/clsCompCaseDealAction"" method=""post"" enctype=""multipart/form-data""> 和struts中的 <action attribute=""clsCompCaseDe

spring-Spring如何给Struts生成新action对象?

问题描述 Spring如何给Struts生成新action对象? Spring3.2.12 Struts2.3.20 看struts代码: @Component @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) @ParentPackage("struts-default") @Namespace("/test") public class TestAction { private String flag; @Actio

利用wordpress解决外链过多的问题

摘要: 往往在网站的运营过程中为了达到更好的用户体验,就需要插入一些外部链接,来进行相关文章的推荐阅读,但过多外链会导致自己站点权重转移,对SEO是十分不利的.使用过discuz系统 往往在网站的运营过程中为了达到更好的用户体验,就需要插入一些外部链接,来进行相关文章的推荐阅读,但过多外链会导致自己站点权重转移,对SEO是十分不利的.使用过discuz系统的朋友都知道,DZ系统提供了外链不解析的功能,能让网页页面中的外链变成文本链接(即无法点击访问).那么wordpress中能否做到呢? 答案是

JSP和Struts解决用户退出问题

js|解决|问题 在一个有密码保护的Web应用中,正确处理用户退出过程并不仅仅只需调用HttpSession的invalidate()方法.现在大部分浏览器上都有后退和前进按钮,允许用户后退或前进到一个页面.如果在用户在退出一个Web应用后按了后退按钮浏览器把缓存中的页面呈现给用户,这会使用户产生疑惑,他们会开始担心他们的个人数据是否安全.许多Web应用强迫用户退出时关闭整个浏览器,这样,用户就无法点击后退按钮了.还有一些使用javascript,但在某些客户端浏览器这却不一定起作用.这些解决方

Struts解决重复提交问题

解决|问题|重复|重复提交 Insert.jsp代码如下:<%@ page contentType="text/html;charset=UTF-8" language="java"%><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><%@ taglib uri="/WEB-INF/struts-html.tld&quo