Struts2的类型转换器





如何实现Struts2的类型转换器?

* 继承StrutsTypeConverter

* 覆盖convertFromString和convertToString



注册类型转换器

* 局部类型转换器,局部类型转换器只对当前Action起作用,需要提供如下配置文件:

MyActionName-conversion.properties,MyActionName指需要使用转换器的Action名称

”-conversion.properties“固定字符串,不能修改。我们AddUserAction类型转换器的配置

文件名称为:AddUserAction-conversion.properties,该配置文件必须和Action放到同一个

目录中,该配置文件的格式为:Action中的属性名称=转换器的完整路径,如:

birthday=com.bjpowernode.struts2.UtilDateConverter

* 全局类型转换器,全局类型转换器可以是所有的Action起作用(同Struts1的类型转换器),

 需要提供如下配置文件:xwork--conversion.properties,该配置文件需要放到src下,该

 配置文件的格式:需要转换的类型完整路径=转换器的完整路径,如:

 java.util.Date=com.bjpowernode.struts2.UtilDateConverter

 

如果全局类型转换器和局部类型转换器同时存在,局部优先





Struts2的标签库就一个,默认以s开头

采用标签读取属性,可以调用转换器的convertToString方法,采用JSTL不会调用

日期转换器代码

package com.bjpowernode.struts2;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class UtilDateConverter extends StrutsTypeConverter { private static final String PATTERN = "yyyy/MM/dd"; //浏览器提交到服务器是调用,将字符串转换成对象
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
String dateString = values[0];
SimpleDateFormat sdf = new SimpleDateFormat(PATTERN);
Date date = null;
try {
date = sdf.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
} //服务器向浏览器输出时调用,将某种类型转换成字符串
@Override
public String convertToString(Map context, Object o) {
Date date = (Date)o;
return new SimpleDateFormat("yyyy年MM月dd日").format(date);
} }

Struts2的类型转换器的更多相关文章

  1. struts2学习笔记之十一:struts2的类型转换器

    Struts2的类型转换器   如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString   注 ...

  2. struts2自定义类型转换器

    首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机 ...

  3. Struts2初学 struts2自定义类型转换器

    一.问题的引出      Struts2的类型转换是基于OGNL表达式的,由于请求的参数都是字符串,而JAVA 本身属于强类型的的语言,这样就需要把请求参数字符串转换成其他类型.     Struts ...

  4. [JavaWeb基础] 013.Struts2 自定义类型转换器

    很多时候,我们在做web开发的时候经常要用到时间的转换器,Struts2给我们提供了一种类型转换器的接口.下面我们讲讲怎么实现吧. 1.首先我们要定义一个类型转换的类,继承自com.babybus.s ...

  5. Struts2:类型转换器

    常规的String,int能自动转换,但是,有些类型不是这么简单,比如输入字符串,但需要Date.自定义类型,因此需要自定义类型转换类型转换器分全局和局部按惯例,局部的优先级高于全局 需求: 1.输入 ...

  6. Struts2之类型转换器

    一.类型转换器的应用场景 类型转换是OGNL的一部分,默认的八种基本类型.String.Date会使用类型转换,但是更复杂的类型转换就需要我们自定义了(虽然这个东西一般根本用不到),OGNL可以应用在 ...

  7. Struts2之类型转换器的使用

    一.学习案例:通过在输入页面(input.jsp)用同一个输入框同一时候输入username和password,通过类型转换器在输出页面(output.jsp)分别输出username和passwor ...

  8. Struts2之自定义类型转换器

    Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...

  9. struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持

    Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...

随机推荐

  1. Android下载管理DownloadManager功能扩展和bug修改

    http://www.trinea.cn/android/android-downloadmanager-pro/ 本文主要介绍如何修改Android系统下载管理,以支持更多的功能及部分bug修改和如 ...

  2. NHibernate使用简单示例

    NHibernate使用小示例 1.新建Model类库项目. 使用代码生成器生成Model类. 此处以简单的UserInfo表作为示例. 注意字段前必须以 virtual 修饰. namespace ...

  3. 洛谷P3953 逛公园

    DP+图论大毒瘤. 推荐这个博客. 先跑两遍最短路,搞掉一些无用点. 然后选出最短路上的边,做拓扑排序. 然后每层DP. 具体看代码. 用到的数组较多,记得清空. #include <cstdi ...

  4. 【CH1602】最大异或和 trie+贪心

    题目大意:给定 N 个数,求这 N 个数中任选两个数进行异或运算,求最大的异或和是多少. 一个 int 类型的整数,可以看作一个长度为32位的字符串,异或运算不像加法,最大值不一定是由两个较大值得到. ...

  5. 和我一起使用webpack构建react项目

    第一步:初始化项目并创建package.json文件 第二步:创建webpack.config.js文件,并写入配置. 第三步:安装webpack以及创建es6语法环境,要将html作为模板文件解析的 ...

  6. double

    看double精度 和 数字经过计算后的最小精度

  7. zoj3956(Course Selection System)_Solution

    zoj3956_Solution H=sum(hi),C=sum(ci),Value=H*H-H*C-C*C 求Value的最大值 Solution: 动态规划: 共两维:H,C           ...

  8. csp20141203 集合竞价 解题报告

    Solution:对股票出价进行排序,然后按照价格递增的次序依次设定p的价格并求成交量.1. //prove that the result of price(maximum--maxprice) i ...

  9. Deploy to container Plugin插件发布配置

      参数详解: 第一项(WAR/EAR files):是war包的相对路径(相对于工作区路径,即在工作区中war包的相对路径.)如我的maven执行完成之后会在工作区的target目录下生成项目.wa ...

  10. java常用的运算符

    Java 语言中常用的运算符可分为如下几种: Ø 算术运算符 Ø 赋值运算符 Ø 比较运算符 Ø 逻辑运算符 Ø 条件运算符