ActionForm

actionForm线程不安全,servlet线程安全

1、actionForm作用:

  1. 收集表单参数(和表单一致)
  2. 类型转换器
    所有从表单提交到后台的数据均为字符串类型,利用ActionForm自动转换int数据类型、自动转换boolean数据类型、自动转换Double类型、自动转换Date类型
  3. 作为传输对象,(跨层传输(DTO)、文件上传、分布收集)

2、ActionForm创建:

  1. 在struts-config的配置文件的action配置映射中 (ActionForm可用配也可以不用配,)
  2. 当你没有配置ActionForm时即没有name属性时,就直接返回。如果你 配置ActionForm时即有name属性如name=“loginForm“ 它会到scope中的 request 或session属性中看一看有没有ActionForm的对象,如果有就返回 如果没有就创建一个ActionForm 对象,
  3. 创建好之后它把ActionForm 对象用setAttribute()方法设置到相应的scope范围内,属性名即为: name属性值,以后在scope范围的页面就可以采用getAttribute(name属性值)方法取到ActionForm 对象的了。

这里写图片描述

3、ActionForm的收集过程:

  1. 首先会拿到表单中的所有的name,然后循环取得的name 。
  2. 调用getParameterValues()方法(通用性好)取得表单中的值 。
  3. 把表单中的所有数据放到一个map集合中, map的key值就是表单中的name, map的values值就是对应的值(一个或多个长度的数组)。
  4. 调用BeanUtils.setProperties方法把表单中的数据逐个设置到 ActionForm实例上。对于ActionForm中的每个属性根据类型调用相应的convert方法(类型转换器),将相应的字符串转换成ActionForm中指定的类型。
  5. 可以通过BeanUtils.copyProperties(目标对象,源对象)方法进行 对象值的复制。

4、actionForm的要求:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Pluto__lxh/article/details/82017657