`

DispatchAction 和DynaValidateActionForm 结合使用时的问题

阅读更多
使用DispatchAction使得程序员能够大大减少action class的数量,但是在和Validation框架配合使用时,可能会遇到这样的问题: 
程序员的本意是只有在action中的某个方法中才使用validation框架校验,但是只要把struts-config.xml中 <action />标签中的validate设为true,那么进入该action的所有方法之前都会进行校验,很痛苦。现在有两个办法: 
1,在stuts-config.xml中对一个class 配多个<action/>标签, 比如: 
<action path="/saveUser" validate=true .....  type="UserAction" /> 
<action path="/initUser" validate=false.....  type="UserAction" /> 
只在需要的action里将validate配成true 
当然这只是权宜之计。 
2:在validation.xml 中将form的name设置成需要的进行校验的action的path 

 

<formset>
 <form name="/user.do?method=save">
  <field>.... </filed>
 </form>
</formset>

 

这样只有在save()方法调用时才会校验。 

update:除了这个,还有另外一个解决方法: 
令struts-config.xml中的validate=false,然后在自己的action中需要校验的地方追加以下代码: 

 

ActionMessages errors = form.validate(mapping, request);//在需要的地方调用validate()方法,其中validate()方法的校验规则已经定义在validation.xml中了
if(!errors.isEmpty()){
    saveErrors(reqeust, errors);
   return mapping.getInputForward(); 
}

 

分享到:
评论

相关推荐

    DispatchAction

    在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...

    struts中dispatchAction用法

    Struts是Java Web开发中的一款经典MVC框架,它的核心组件之一是DispatchAction,这个组件在...通过学习和分析这些文件,初学者可以更深入地理解Struts中DispatchAction的使用和工作原理,从而更好地进行Java Web开发。

    DispatchAction实例

    下面我们将详细探讨`DispatchAction`的使用步骤和关键点: 1. **创建子类**:首先,你需要创建一个继承自` DispatchAction `的Java类。在这个类中,你可以定义自己的业务逻辑方法,比如`executeSave()`、`...

    struts DispatchAction

    使用DispatchAction的另一个优点是,它可以结合Struts的国际化和主题功能,为不同的用户群体提供定制的视图。此外,通过将Action类中的方法组织成逻辑相关的组,可以更方便地进行权限控制和事务管理。 然而,需要...

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证的示例

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。

    Struts中等同于DispatchAction类方法

    但是,它也存在一些潜在的问题,比如安全性问题(如果用户可以任意指定方法名,可能会引发安全漏洞)和代码可读性问题(因为业务逻辑不再与Action类的方法名直接对应)。 在更现代的Struts版本,如Struts 2,已经...

    Struts(DispatchAction) + 存储过程 => 实现分页效果

    在这个场景中,我们将探讨如何结合DispatchAction和存储过程来实现分页效果。 首先,理解分页的基本概念。分页是当数据量过大时,为提高用户体验,将数据分成若干部分逐页展示的一种技术。在Web应用中,用户可以逐...

    DispatchAction、LookupDispatchAction、SwitchAction的应用

    使用 **DispatchAction** 可以有效地解决这一问题。通过将这些相似的操作集中在一个 Action 中,不仅可以减少代码量,还能提高代码的可维护性和可读性。 **1.2 如何使用 DispatchAction** 为了使用 **...

    struts+oracle实现DispatchAction类

    在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...

    Struts 之 DispatchAction

    以下是如何配置和使用`DispatchAction`的步骤: 1. **配置struts-config.xml**:首先,在`struts-config.xml`中为`DispatchAction`创建一个配置项,指定它的类路径和映射URL。例如: ```xml ``` 2. **...

    Struts_DispatchAction的使用

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助...在此谢谢各位!!

    Struts2常用标签&DispatchAction.rar

    03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar

    SSH整合继承DispatchAction的简单例子

    通过分析这些文件,你可以更深入地了解SSH整合和DispatchAction的用法。 总的来说,这个例子是一个实用的学习资源,它展示了如何在实际项目中集成SSH框架,并利用DispatchAction实现请求的分发。对于初学者,这是一...

    java面试过程中遇到的问题总结

    本文总结了 Java 面试中的一些常见问题,涵盖了 Ajax 的原理、优缺点、 DispatchAction 和 Action 的区别等知识点。 Ajax 的原理 Ajax 是一种异步请求技术,通过 XmlHttpRequest 对象来向服务器发送异步请求,从...

    利用struts标签,dispatchAction,实现增删改查

    在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这对于初学者来说是一个非常实用的学习主题。 首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据...

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    深入解析Java的Struts框架中的控制器DispatchAction

    本文将深入解析Struts中的控制器组件,特别是DispatchAction的使用。 在Struts框架中,控制器主要由ActionServlet和Action类组成。ActionServlet作为前端控制器,负责拦截所有HTTP请求,并根据配置文件(struts-...

    vue结合Echarts实现点击高亮效果的示例

    在上面的示例代码中,我们使用dispatchAction方法触发了unfocusNodeAdjacency事件,该事件会取消高亮显示当前节点的相邻节点。 5. 事件的绑定 事件的绑定需要使用Echarts的on方法,该方法可以绑定图表的交互事件。...

    DisapatchAction测试和RequestProcessor控制器类

    在实际项目中,开发者可能会结合使用这两种控制器类,以充分利用它们各自的优点。例如,`DispatchAction`可以用于处理特定的业务逻辑,而`RequestProcessor`则负责全局的请求处理和预处理工作。 总的来说,理解`...

    Struts原理(二)

    总结起来,"Struts原理(二)"主要涵盖了如何利用DispatchAction处理多种操作,通过资源文件实现国际化,展示错误信息,使用DynaActionForm动态管理表单字段,以及将实体对象与表单属性结合。这些知识点不仅提升了...

Global site tag (gtag.js) - Google Analytics