zoukankan      html  css  js  c++  java
  • Struts2的类型转换器

    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);
    	}
    
    }


  • 相关阅读:
    Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据(转)
    保存图片文件到本地
    android ScrollView中嵌套GridView,ListView只显示一行的解决办法
    蒙版提示页(添加新功能后的一种提示)
    C和指针 第三章--数据
    *(ptr++) += 123
    优先级队列-堆
    单链表相关(一)
    字符间的距离-动态规划
    和最大的连续子数组
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239917.html
Copyright © 2011-2022 走看看