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


    很多时候,我们在做web开发的时候经常要用到时间的转换器Struts2给我们提供了一种类型转换器的接口。下面我们讲讲怎么实现吧。

    1.首先我们要定义一个类型转换的类,继承自com.babybus.sdteam.converter.DateTypeConverter

    package com.babybus.sdteam.converter;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Map;
    
    import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
    
    public class DateTypeConverter extends DefaultTypeConverter {
    	@SuppressWarnings("unchecked")
    	@Override
    	public Object convertValue(Map<String, Object> context, Object value, Class toType) {
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
    		try {
    			// 当字符串向Date类型转换时
    			if (toType == Date.class) { 
    				String[] params = (String[]) value;
    				return sdf.parseObject(params[0]);
    			// 当Date转换成字符串时
    			} else if (toType == String.class) { 
    				Date date = (Date) value;
    				return sdf.format(date);
    			}
    		} catch (java.text.ParseException e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    }
    

    2.在action的同级目录下建立ActionName-conversion.propertiesActionName是aciton的类名

    loginDate=com.babybus.sdteam.converter.DateTypeConverter
    

    3.如何调用,请看jsp

    <form action="logOn.action" method="post" style="height: 100%">
        <input name="loginDate" value = "20110315 23:34:55" type = "hidden"/>
        <table width="100%" height="100%" cellpadding="0" cellspacing="0" >
    	    <tr>
    		    <td align="center" valign="middle" />
    				<table>
    				    <tr><td>用户名:</td><td><input type="text" id = "username" name="username"/></td></tr>
    				    <tr><td>密码:</td><td><input type="password" name="password" id = "password" /></td></tr>
    				    <tr><td colspan="2" align="center"> <input type="submit" value="登录"/><input type="reset" value="重置"/></td></tr>
    			    </table>
    		    </td>
    	    </tr>
        </table>
    </form>
    

     Action中接收loginDate的类型为Date类型,那么传过去字符串自动转换成Date类型

    结语

    • 受益,掌握了Struts2 自定义类型转换器

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 

    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4755927.html

  • 相关阅读:
    java后台对上传的图片进行压缩
    Reflections框架,类扫描工具
    commons-httpclient和org.apache.httpcomponents的区别
    sql里面插入语句insert后面的values关键字可省略
    Callable接口、Runable接口、Future接口
    Java多线程之Callable接口的实现
    说说Runnable与Callable
    论坛贴吧问题:如何终止运行时间超时的线程
    使用Future停止超时任务
    spring的@Transactional注解详细用法
  • 原文地址:https://www.cnblogs.com/superdo/p/4755927.html
Copyright © 2020-2023  润新知