`
Java-feifeiok
  • 浏览: 22881 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
文章分类
社区版块
存档分类
最新评论

struts2类型转换的总结

阅读更多
转换器:可以继承的类:DefaultTypeConverter、StrutsTypeConverter其中后者是常用的,继承于前者的
(1) 普通的类型转换:日期(局部类型转换)
DateAction.java代码如下:
package org.study.test.actions;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class DateAction extends ActionSupport {
private Date date;

public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}

@Override
public String execute() throws Exception {

System.out.println("-----------"+date+"----------");

return SUCCESS;
}
}

date.jsp中只有一个输入域,输入日期格式的数据

DateAction-conversion.properties
java.util.Date=org.study.test.utils.PointAction

DateConverter.java
package org.study.test.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class PointAction extends StrutsTypeConverter {

private static String DATE_TIME_FOMART_IE = "yyyy-MM-dd HH:mm:ss";

private static String DATE_TIME_FOMART_FF = "yy/MM/dd hh:mm:ss";

@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
Date date = null;
String dateString = null;
if (values != null && values.length > 0) {
dateString = values[0];
if (dateString != null) {
// 匹配IE浏览器
SimpleDateFormat format = new SimpleDateFormat(DATE_TIME_FOMART_IE);
try {
date = format.parse(dateString);
} catch (ParseException e) {
date = null;
}
// 匹配Firefox浏览器
if (date == null) {
format = new SimpleDateFormat(DATE_TIME_FOMART_FF);
try {
date = format.parse(dateString);
} catch (ParseException e) {
date = null;
}
}
}
}
return date;
}

@Override
public String convertToString(Map context, Object o) {
// 格式化为date格式的字符串
Date date = (Date) o;
SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_FOMART_FF);
String dateTimeString = sdf.format(date);
return dateTimeString;
}
}

其中action和actionNames-converter.properties应该在一个目录下

List类型转换:

RegAction.java

package org.study.test.actions;

import java.util.List;

import com.opensymphony.xwork2.ActionSupport;

public class RegAction extends ActionSupport {
private List<String> username;

public List<String> getUsername() {
return username;
}

public void setUsername(List<String> username) {
this.username = username;
}

@Override
public String execute() throws Exception {
for (String s : username) {
System.out.println(s);
}
return SUCCESS;
}
}

reg.jsp

<s:form action="reg" method="post" >
<s:textfield name="username" label="username"></s:textfield>
<s:textfield name="username" label="username1"></s:textfield>
<s:submit></s:submit>
</s:form>

RegAction-conversion.properties

Element_username = java.lang.String;  其中Element_username  前面是固定的,后面是action中的属性名

注意:此处因为是基本类型的集合数据,所以无需转换器类

Map类型转换

需要注意的是:
    (1)指定key类型:  Key_ Map类型的属性的属性名=key类型的全限定类名

          (2)指定value类型: Element_ Map类型的属性的属性名=value类型的全限定类名
1
1
分享到:
评论

相关推荐

    struts2类型转换深入总结

    NULL 博文链接:https://fangguanhong.iteye.com/blog/1771068

    struts2总结大全

    servlet模板,JavaDoc视图的使用,局部类型转换器步骤 ,全局类型转换器 ---对所有的Action类有效,模型驱动,数据校验,struts2校验介绍,校验分类,包的总结,开发的核心类库

    Struts2框架学习总结【自用】【原创】【详细】

    个人struts2框架学习后的梳理和总结,内容丰富,从配置文件到action类、result、ognl、类型转换器、国际化、拦截器、表单验证等等内容,还推荐了很多博客链接,有了它自学Struts2框架毫无压力!

    Struts2入门教程(全新完整版)

    十、类型转换 57 1.基于Action的直接属性转换 57 2.基于Action的间接属性vo转换 59 十一、注解配置 59 十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及...

    struts2总结第二章

    Struts2总结第二章 一、 局部类型转换: a) 写Date类型转换类 b) 在要进行Date类型转换的类的同一包下,新建一个properties文件 i. 名称为Date类型的数据所在的类的名称-conversion.properties ii. 内容为 name:该...

    Struts2 学习笔记

    01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 ...10 类型转换 38 Struts2总结 39

    struts2入门实例1

    struts2 最新的入门实例 我自己总结的 呵呵,欢迎提出宝贵的意见 1.Struts2_01_login 对应登录。。 login.jsp---------------------------------------html标签的登陆页面 login_struts2.jsp--------------...

    struts2入门实例2 经典入门必备

    OGNL表达式实现类型转换 9.Struts2_03_validate_review 输入校验 ————复习前面的 10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是...

    Struts2帮助```````

    01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 ...10 类型转换 38 Struts2总结 39

    struts2入门实例3 经典入门必备

    OGNL表达式实现类型转换 9.Struts2_03_validate_review 输入校验 ————复习前面的 10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是...

    struts2入门实例4 经典入门必备

    OGNL表达式实现类型转换 9.Struts2_03_validate_review 输入校验 ————复习前面的 10.Struts2_04_validate_method ????????????? validateXXX方法校验得到的错误信息先显示出来,然后才是...

    struts2.doc

    struts2.doc struts 1 和struts 2比较 Action 类 线程模式 Servlet 依赖 可测性 捕获输入 表达式语言 绑定值到页面(view) 类型转换 校验 Action执行的控制 等 自己总结的一些东西

    struts2知识总结.txt

    StrutsJSPXMLJDKTomcat,编译问题,Acion的配置,Result的配置,异常处理,国际化,控制重复提交,类型转换 。

    Strust知识点总结

    本资料是Struts2的知识点总结,可以快速回顾Struts的知识点。主要包括:拦截器、结果视图、OGNL、类型转换、国际化、上传下载

    java从入门到精通70个PPT

    36 类型转换和OGNL 37-40 项目案例:在线投票系统 41 jsp servlet struts总结 42 Hibernate 入门 43 Hibernate 关联映射 44 HQL实用技术 45 HQL高级 46 Criteria 查询 47-49 项目实战 影院信息查询系统 50 pl/sql 51...

    Java语言基础下载

    升级和表达式的类型转换 62 独立实践 70 第五章:数组 71 学习目标 71 数组的描述 72 创建数组 72 多维数组 78 拷贝数组 80 内容总结 83 独立实践 84 第六章:继承 86 学习目标: 86 单继承(single inheritance) 87 ...

    spring杂谈 作者zhang KaiTao

    1. spring杂谈[原创] 1.1 Spring事务处理时自我调用的解决方案及一些实现方式的风险 ...1.32 Spring3 Web MVC下的数据类型转换(第一篇)——《跟我学Spring3 Web MVC》抢先看 1.33 Spring 注入集合类型

Global site tag (gtag.js) - Google Analytics