zoukankan      html  css  js  c++  java
  • [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

  • 相关阅读:
    POJ 2987:Firing(最大权闭合图)
    BZOJ 1001:[BeiJing2006]狼抓兔子(最小割)
    HDU 1007:Quoit Design(分治求最近点对)
    POJ 1986:Distance Queries(倍增求LCA)
    HDU 3879 && BZOJ 1497:Base Station && 最大获利 (最大权闭合图)
    BZOJ-1011 遥远的行星
    BZOJ-1044 木棍分割
    BZOJ-1042 硬币购物
    BZOJ-1050 旅行
    BZOJ-1037 生日聚会
  • 原文地址:https://www.cnblogs.com/superdo/p/4755927.html
Copyright © 2011-2022 走看看