Struts2笔记——类型转换

 概述

* 从一个HTML 表单到一个Action 对象, 类型转换是从字符串到非字符串.
    >HTTP 没有 “类型” 的概念. 每一项表单输入只可能是一个字符串或一个字符串数组. 在服务器端, 必须把 String转换为特定的数据类型
* 在 struts2 中, 把请求参数映射到 action 属性的工作由 Parameters 拦截器负责, 它是默认的 defaultStack 拦截器中的一员. Parameters拦截器可以自动完成字符串和基本数据类型之间转换.

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

接收请求参数

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

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

Struts2笔记——类型转换

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

Struts2笔记——类型转换

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

定制类型转换器

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

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

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

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

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

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

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 标签可以被映射到一个属性的属性.

Struts2笔记——类型转换

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

类型转换与Collection配合使用 

* Struts 还允许填充 Collection 里的对象, 这常见于需要快速录入批量数据的场合 
Struts2笔记——类型转换

上一篇:安卓中級教程(4):ScrollView與ListView之間的高度問題


下一篇:Json.Net学习(1) 实现简单的序列化和反序列化