
1.validate()方校验action中所有与execute方法签名相同的方法;
2.要校验指定的方法通过重写validateXxx()方法实现, validateXxx()只会校验action中方法名为Xxx的方法。其中Xxx的第一个字母要大写;
3.当某个数据校验失败时,调用addFieldError()方法往系统的fieldErrors添加校验失败信息(为了使用addFieldError()方法,action可以继承ActionSupport),如果系统 的fieldErrors包含失败信息,struts2会将请求转发到名为input的result;
4.在input视图中可以通过显示失败信息。
5.先执行validateXxxx()->validate()->如果出错了,会转发所指定的页面,如果不出错,会直接进行Action::execute()方法.
1)是对调用的Action起作用,它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码。只能拦截Action,说明白点其实是Action的功能块,只在Action前后执行。可以抽象出一部分代码可以用来完善原来的action。同时可以减轻代码冗余,提高重用率。
2) 过滤器是拦截用户请求的,范围明显比大的多。
1.在 struts2 中, 把请求参数映射到 action 属性的工作由 Params负责, 它是默认的 defaultStack 中的一员. Params可以自动完成字符串和基本数据类型之间转换.
2.在web应用中,提交的数据基本都是字符串。
3.对于引用类型的数据(除String、Collection)转换,需要自定义类型转换器;
4.自定义类型转化器必须实现TypeConverter 接口或对这个接口的某种具体实现做扩展,如:StrutsTypeConverter,重写convertToString和convertFromString方法;
局部:
创建一个属性文件: ActionClassName-conversion.properties, 该文件需和相对应的动作类(Action)放在同一个目录下, ActionClassName是Action的类名,后面的-conversion.properties 是固定写法。在properties文件中的内容为: 属性名称=类型转换器的全类名
全局:
在 WEB-INF/classes/ 目录下创建 xwork-conversion.properties 文件. 在properties文件中的内容为: 待转换的类型=类型转换器的全类名
注意:对于转换的是属性,只需要写属性名,如果是对应的是类型,则需要写全类名 。
第一步:在表单中加入
第二步,使用token栏截器,定义invalid.token结果集 ,要使用 必须要在struts.xml的action中引用token的预定义。
当然还可以使用tokenSession
一、造成重复提交主要的两个原因:
在平时的开发过程中,经常可以遇到表单重复提交的问题,如做一个注册页面,如果表单重复提交,那么一个用户就会注册多次,重复提交主要由于两种原因。
1、 一是,服务器处理时间久。当用户在表单中填完信息,点击“提交”按钮后,由于服务器反应时间过长没能及时看到响应信息,或者出于其它目的,再次点击“提 交”按钮,从而导致在服务器端接收到两条或多条相同的信息。如果信息需要存储到后台中,如此以来就会产生操作异常提示信息,以至于给用户带来 错误信息提示,从而给用户的使用带来不便。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29166-1.html
不知道是什么品牌味道超级难喝零售假要比RIO便宜2元
在质量上中国海军也会占据绝对上风