好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Spring MVC自定義日期類型轉換器實例詳解

Spring MVC自定義日期類型轉換器實例詳解

熱門標簽:電銷機器人免培訓 潤滑油銷售電銷機器人 外呼系統使用方法 海外圖書館地圖標注點 給地圖標注得傭金 電話機器人需要使用網絡嗎 如何看懂地圖標注點 自繪地圖標注數據 南通通訊外呼系統產品介紹

Spring MVC自定義日期類型轉換器實例詳解

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

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

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

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

package com.tgsit.cjd.utils;
/**
 * 日期類型轉換器:
 *     自動格式化對象中的日期類型
 */
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();  
  } 
}

第二步:如果項目中沒有引入json-lib包,則引入

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

第三步:返回數據之前先使用日期類型轉換器格式化日期數據

這里必須先創建JsonConfig對象,然后調用registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());方法將轉換器注入進去,最后在調用JsonArray的formObject(數據,new JsonConfig())方法進行處理。

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

但是你處理的一個list集合數據時,則記得用jsonArray.formObject(數據,new JsonConfig());否則報錯。

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

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

您可能感興趣的文章:
  • SpringMVC自定義類型轉換器實現解析
  • 詳解SpringMVC的類型轉換及驗證方法
  • 詳解SpringMVC注解@initbinder解決類型轉換問題
  • 解決springmvc關于前臺日期作為實體類對象參數類型轉換錯誤的問題
  • springMVC4之強大類型轉換器實例解析
  • SpringMVC實現自定義類型轉換器
  • SpringMVC對日期類型的轉換示例
  • Springmvc自定義類型轉換器實現步驟

標簽:南京 廣州 樂山 大連 銅川 貸款邀約 內江 黃石

巨人網絡通訊聲明:本文標題《Spring MVC自定義日期類型轉換器實例詳解》,本文關鍵詞  Spring,MVC,自定義,日期,類型,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Spring MVC自定義日期類型轉換器實例詳解》相關的同類信息!
  • 本頁收集關于Spring MVC自定義日期類型轉換器實例詳解的相關信息資訊供網民參考!
  • 推薦文章