struts2 数据校验



struts2 数据校验。

一. ActionSupport是个工具类,他实现了Action, Validatable等接口, Validatable提供validate()方法进行数据验证.Action只要继承ActionSupport类,重写validate()方法就可以进行数据验证

二. 校验的流程      首先,Struts框价对输入数据进行类型转换,然后再进行数据校验,如果类型转换与数据校验都没有错误发生, 就进入execute(),否则请求将被转发到input视图

三. 注册实例     首先新建RegistAcion.java

Java代码 复制代码 收藏代码

[......]

Read more

struts2中利用validation框架进行数据校验



struts2中利用validation框架进行数据校验回忆一下struts1的校验(写在formBean里面,并且凡是Action使用了该FromBean,都会调用其FormBean里面的验证方法即validate方法),校验数据是属于业务逻辑,写在业务层应该更合适,可以说struts2的验证更为具体,可以验证到某个具体方法:

验证方法一、

所使用的Action继承ActionSupport并重写validate方法,这种方式会验证所Action里面的所有方法,code:

 

 

@Override

public void valida[......]

Read more

struts2数据校验方法使用介绍

struts2数据校验方法使用介绍。

1.      重写ActionSupport中的validate方法进行数据校验

如果有数据不符合规则,addFieldError(“字段名”,”错误提示”);或 addFieldError(“字段名”,getText(“错误信息的key”));方法结束后,如果有错误,那么会到input对应的视图

 

在Action中也可以写validateXxx对不同的方法进行校验,例如validateAdd就是对add方法传入的参数进行校验

 

2.      数据校验流程

a)        类型转换器[......]

Read more

JS事件探秘

JS事件探秘

一、事件流
事件流描述的是从页面中接受事件的顺序。
IE的事件流是事件冒泡流,而Netscape的事件流是事件捕获流
1、事件冒泡
事件冒泡,即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上转播至最不具体的节点(文档)。
如下图所示,如果你点击了按钮,那么也认为你点击了外面的div,最终会一直传递到document上,从小到大的传播,就好比水里鱼的冒泡,从小泡泡大道泡泡的过程。
JS事件探秘 - 月上西楼 - 月上西楼
2、事件捕获
事件捕获跟事件冒泡恰好相反。它的思想是不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件。
JS事件探秘 - 月上西楼 - 月上西楼
二、[......]

Read more

JavaScript的24条最佳实践

JavaScript的24条最佳实践.1. 使用===代替==

JavaScript使用2种不同的等值运算符:===|!==和==|!=,在比较操作中使用前者是最佳实践。
    “如果两边的操作数具有相同的类型和值,===返回true,!==返回false。”
                                              ——JavaScript:语言精粹
然而,当使用==和!=时,你可能会遇到类型不同的情况,这种情况下,操作数的类型会被强制转换成一样的再做比较,这可能不是你想要的结果。
2. Eval=邪恶
起初不太熟悉时,“eval”让我们能够[......]

Read more

wordpress后台打开缓慢的临时解决方法

wordpress后台打开缓慢的临时解决方法最近打开博客后台,发现后台打开速度很慢。 通过开发者调试工具对网络加载进行检测,发现是由于后台使用了谷歌字体的API。由于谷歌在大陆被墙了,导致我们的浏览器会反复的请求谷歌服务器而无法正常加载页面。以前有很多网站使用的是谷歌CDN的,现在最好替换成国内的新浪、百度CDN,不然网站会拖的死慢甚至出错。 因此简单的解决方案就是禁用谷歌的字体api。 解决方法是在当前主题的functions.php中加入下面的代码:

//禁用Open Sans
class Disable_Google_Fonts {
public function __constr[......]

Read more

AOP及AspectJ的用法

AOP及AspectJ的用法

一、为什么需要AOP技术

AOP 是一个很成熟的技术。
假如项目中有方法A、方法B、方法C……等多个方法,
如果项目需要为方法A、方法B、方法C……这批方法增加具有通用性质的横切处理。
下图可以形象的说明具有通用性质的横切处理的思想:
Spring AOP开发漫谈之初探AOP及AspectJ的用法 - 月上西楼 - 月上西楼
在以前传统的做法是

 

1、先定义一个Advice方法,该方法实现这个通用性质的横切处理。 2、打开方法A、方法B、方法C……的源代码修改,使得方法A、方法B、方法C……去调用Advice方法。
客户电话: 为每个方法都增加日志。
客户电话: 为每个方法前都增加权限控制。
客户[......]

Read more

AOP那些学术概念—通知、增强处理连接点(JoinPoint)切面(Aspect)

1、我所知道的AOP
初看起来,上来就是一大堆的术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下让你不知所措,心想着:管不得很多人都和我说AOP多难多难。当我看进去以后,我才行发现:他就是一些Java基础上的朴实无华的应用,包括IOC(见《Spring IOC(依赖注入、控制反转)概念理解》),包括许许多多这样的名词,都是万变不离其宗而已。
2、为什么要用AOP
1)就是为了方便,看一个国外很有名的大师说,编程的人都是“懒人”,因为他把自己做的事情都让程序去做了。用了AOP能让你少写很多代码,这点就够充分了吧。
2)就是为了更清晰的逻辑,可以让你的业务[......]

Read more

Spring IOC(依赖注入、控制反转)概念理解

Spring IOC(依赖注入、控制反转)概念理解

假设A组件依赖B组件

1. 自己new一个。 主动

2. 找工厂去要一个。 主动。

3. 等,等容器为我们提供一个被依赖组件。 被动。

传统模式下,无论是A去new一个B组件,还是通过工厂去获取B组件,都要需要A组件主动去获取被依赖的B组件。

用了Spring之后, Spring容器会负责把被依赖的B组件注入到A组件中,A只要被动地等待即可。

——此时A对B的控制关系,由原来的主动变成了被动,Johnson将之成为IoC(从A组件角度起名字)。

Martine Fowler —— IoC难理解,[......]

Read more

AOP开发之开发Spring AOP程序

AOP开发之开发Spring AOP程序

这是漫谈AOP系列的第三篇,前两篇请看
我们还是以《漫谈AOP开发之初探AOP及AspectJ的用法》中的例子为例继续,我们在Eclipse中创建一个新的工程,导入UserService、BookService两个类,并配置Spring的Bean:
<bean id="us" class="com.mybry.aop.service.UserService"/>
<bean id="bs" class=[......]

Read more