麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

Spring MVC自定義日期類型轉(zhuǎn)換器實(shí)例詳解

2024-09-05 00:22:58
字體:
供稿:網(wǎng)友

Spring MVC自定義日期類型轉(zhuǎn)換器實(shí)例詳解

 WEB層采用Spring MVC框架,將查詢到的數(shù)據(jù)傳遞給APP端或客戶端,這沒啥,但是坑的是實(shí)體類中有日期類型的屬性,但是你必須提前格式化好之后返回給它們。說真的,以前真沒這樣做過,之前都是一口氣查詢到數(shù)據(jù),然后在jsp頁面上格式化,最后展示給用戶。但是這次不同,這次我純屬操作數(shù)據(jù),沒有頁面。直接從數(shù)據(jù)庫拿數(shù)據(jù)給它們返數(shù)據(jù)、它們給我傳數(shù)據(jù)我持久化數(shù)據(jù),說到這里一個(gè)小問題就默默的來了。

首先把問題還原一下吧(這是一個(gè)數(shù)據(jù)導(dǎo)出功能),下圖中用紅框圈起來的都是直接從數(shù)據(jù)庫中拿到的數(shù)據(jù),但是不幸的是它們的對象中都包含日期類型的屬性,然后我直接使用com.alibaba.fastjson.JSONObject將其轉(zhuǎn)成json串返回給APP端和客戶端,但是他們拿到的數(shù)據(jù)中時(shí)間類型的值都是時(shí)間戳,很不人性化,我也覺的很不人性化,就答應(yīng)給他們格式化一下,不料,問題來了,格式化好之后然后又設(shè)置進(jìn)去,結(jié)果是沒用,沒用,沒用,重要的事情說三遍!

Spring,MVC自定義日期類型轉(zhuǎn)換器,MVC日期轉(zhuǎn)換器

解決上面出現(xiàn)的問題,格式化對象中的日期類型的屬性值,然后返回給請求者。記住:這個(gè)動(dòng)作是在服務(wù)器端完成,并且實(shí)體類和數(shù)據(jù)表中的類型也都不變,照樣是日期類型的。

第一步:首先自定義一個(gè)日期類型轉(zhuǎn)換器(附代碼)

package com.tgsit.cjd.utils;/** * 日期類型轉(zhuǎn)換器: *     自動(dòng)格式化對象中的日期類型 */import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;import net.sf.json.JsonConfig;import net.sf.json.processors.JsonValueProcessor;public class JsonDateValueProcessor implements JsonValueProcessor{  private String format ="yyyy-MM-dd";   public JsonDateValueProcessor() {     super();   }    public JsonDateValueProcessor(String format) {     super();     this.format = format;   }   @Override   public Object processArrayValue(Object paramObject,       JsonConfig paramJsonConfig) {     return process(paramObject);   }   @Override   public Object processObjectValue(String paramString, Object paramObject,       JsonConfig paramJsonConfig) {     return process(paramObject);   }    private Object process(Object value){     if(value instanceof Date){        SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);        return sdf.format(value);     }      return value == null ? "" : value.toString();    } }

第二步:如果項(xiàng)目中沒有引入json-lib包,則引入

<dependency>   <groupId>net.sf.json-lib</groupId>   <artifactId>json-lib</artifactId>   <version>2.4</version>   <classifier>jdk15</classifier></dependency>

第三步:返回?cái)?shù)據(jù)之前先使用日期類型轉(zhuǎn)換器格式化日期數(shù)據(jù)

這里必須先創(chuàng)建JsonConfig對象,然后調(diào)用registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());方法將轉(zhuǎn)換器注入進(jìn)去,最后在調(diào)用JsonArray的formObject(數(shù)據(jù),new JsonConfig())方法進(jìn)行處理。

注意:這里還有個(gè)小坑,就是當(dāng)你處理的是單純的一個(gè)實(shí)體對象,則直接可以jsonObject.formObject(數(shù)據(jù),new JsonConfig());

但是你處理的一個(gè)list集合數(shù)據(jù)時(shí),則記得用jsonArray.formObject(數(shù)據(jù),new JsonConfig());否則報(bào)錯(cuò)。

@RequestMapping(value = "/exportInfo", method = RequestMethod.GET)  @ResponseBody  public String exportInfo(HttpServletResponse response) throws Exception{    List<QueryVo> exportInfoList = queryVoService.exportInfo();    if(exportInfoList != null && exportInfoList.size() > 0){      List<Object> result = new ArrayList<Object>();      JsonResult model = null;      for (QueryVo queryVo : exportInfoList) {        OwnerInfo ownerInfo = ownerInfoService.selectOwnerInfoByVIN(queryVo.getVin());        List<MortgagerInfo> morInfoList = mortgagerInfoService.selectByVIN(queryVo.getVin());        List<TransferInfo> traInfoList = transferInfoService.selectByVIN(queryVo.getVin());        model = new JsonResult();        model.setOwnerInfo(ownerInfo);        model.setMortgagerInfo(morInfoList);        model.setTransferInfo(traInfoList);        result.add(model);      }      //調(diào)用自定義日期類型轉(zhuǎn)換器,自動(dòng)格式化對象中的日期類型的字段值      JsonConfig jsonConfig = new JsonConfig();       jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());      return CGSConstants.returnJson(CGSConstants.SUCCESS,"導(dǎo)出成功",JSONArray.fromObject(result, jsonConfig));    }    return CGSConstants.returnJson(CGSConstants.SUCCESS,"尚無數(shù)據(jù)",null);  }

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識(shí)閱讀請移步到JSP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 一级毛片免费一级 | videos 欧美| 亚洲欧美aⅴ | 欧美成人一区二区三区 | 国产成人自拍视频在线 | 午夜a狂野欧美一区二区 | 亚洲欧美日韩在线 | 毛片视频在线免费观看 | 在线成人影视 | 精品一区二区免费视频视频 | 一区二区三区视频在线 | 日本成年免费网站 | 国产亚洲精品美女久久久 | 伊人999 | 操皮视频 | 九九热在线精品视频 | 91精品久久久久久 | 成人福利视频网站 | 久久久久久久久成人 | 国产精品视频1区 | 毛片免 | xnxx 美女19| 国产大片在线观看 | qyl在线视频精品免费观看 | 红杏亚洲影院一区二区三区 | 久久久久在线观看 | 欧美一级黄色片免费观看 | 欧美一区2区三区4区公司二百 | 国产免费高清 | 欧美a级大胆视频 | 黄色特级片黄色特级片 | 亚洲精品有限 | 视频一区二区久久 | 免费国产成人高清在线看软件 | 免费一级在线观看 | caoporn国产一区二区 | 成人福利电影在线观看 | 国产成人精品自拍视频 | 国产中出视频 | 国内免费视频成人精品 | 欧美精品黄色 |