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

  • 相关阅读:
    简单的jquery左侧导航栏和页面选中
    SQL 无限级分类语句
    创建第一个MVC专案--初识MVC
    powershell读写磁盘变量(对象序列化)
    powershell字符界面的,powershell加WPF界面的,2048游戏
    Invoke-WebRequest Invoke-RestMethod 乱码研究
    powershell中的两只爬虫
    powershell脚本闪电输入神器
    请把不听话的【return】关进【class】这个笼子
    当powershell遇上mysql引发的血案
  • 原文地址:https://www.cnblogs.com/superdo/p/4755927.html
Copyright © 2011-2022 走看看