Struts2笔记——类型转换

来源:互联网 发布:网络诈骗去哪里报案 编辑:程序博客网 时间:2024/05/04 16:28
 概述

* 从一个HTML 表单到一个Action 对象, 类型转换是从字符串到非字符串.
    >HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String转换为特定的数据类型

* 在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters拦截器可以自动完成字符串和基本数据类型之间转换.


===================================

接收请求参数


采用基本类型接收请求参数

在Action类中定义与请求参数同名的属性,struts2便能自动接收请求参数并赋予给同名属性。


图片

java.util.Date类型的属性可以接收格式为yyyy-MM-dd的请求参数值。但如果我们需要接收格式为yyyyMMdd的请求参数,我们必须定义类型转换器,否则struts2无法自动完成类型转换。

 图片


===================================

定制类型转换器 

* 自定义类型转化器必须实现ongl.TypeConverter 接口或对这个接口的某种具体实现做扩展 
图片

 
===================================
配置自定义类型转换器
  

在应用程序里使用一个自定义的类型转换器之前, 必须先对它进行配置.

这种配置既可以基于字段,也可以基于类


-------------------

基于字段配置(局部): 可以为某个动作的各个属性分别制定一个自定义的转换器.


1. 创建一个属性文件: ActionClassName-conversion.properties, 该文件需和相对应的动作类(Action)放在同一个目录,ActionClassName是Action的类名,后面的-conversion.properties是固定写法.在properties文件中的内容为:

    属性名称=类型转换器的全类名
 

    对于本例而言,文件的名称应为UserAction- conversion.properties


2. 编辑属性文件:

    createTime=cn.itcast.converter.DateConverter

------------------


基于类配置(全局):

* 在 WEB-INF/classes/ 目录下创建 xwork-conversion.properties 文件.

* 在properties文件中的内容为:

          待转换的类型=类型转换器的全类名

* 对于本例而言, xwork-conversion.properties文件中的内容为:

    java.util.Date= cn.itcast.converter.DateConverter  

===================================

类型转换与复杂对象配合使用  

很多时候, 需要把表单字段映射到多个对象的不同属性上

form 标签可以被映射到一个属性的属性. 

图片

 ===================================

类型转换与Collection配合使用 

* Struts 还允许填充 Collection 里的对象, 这常见于需要快速录入批量数据的场合 
图片 

0 0