1. 程式人生 > >SpringMVC日期處理(二)

SpringMVC日期處理(二)

在上面的例子中,我們執行時,將會看到的是頁面是報錯的。為了檢視詳細的資訊,我們可以在application.properties中新增logging.level.org.springframework.web=DEBUG這一行的程式碼。這個時候我們執行時,看到的debug的資訊如下:


對於為什麼會這樣,我們有必要去看一下Spring中的DateTimeFormatterRegistrar的類。在這個類中,你會看到,這裡配置瞭解析和列印JRS310。也就是說,這裡規定的日期的格式,在美國所用的格式是MM/dd/yy,而在其它地方用的是dd/MM/yy的格式。所以我們需要在Spring啟動時,將自己用到的格式預置好。

1.建立日期格式

你們在專案下建立 一個包,包的名字叫date,同時日期需要轉換的類叫USLocationDateFormatter.

package masterSpringMVC.date;

import org.springframework.format.Formatter;

import java.text.ParseException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

/**
 * 根據本地的國家,判斷用什麼樣的日期
 * Created by OwenWilliam on 2016/5/15.
 */
public class USLocalDateFormatter implements Formatter<LocalDate> {
    /**美國的日期格式*/
    public static final String US_PATTERN = "MM/dd/yyyy";
    /**其它國家的日期格式*/
    public static final String NORMAL_PATTERN = "dd/MM/yyyy";

    /**
     * 語法上的解析
     * @param text
     * @param locale
     * @return
     * @throws ParseException
     */
    @Override
    public LocalDate parse(String text, Locale locale) throws ParseException {
        return LocalDate.parse(text, DateTimeFormatter.ofPattern(getPattern(locale)));
    }

    /**
     * 將locale轉換為String
     * @param object
     * @param locale
     * @return
     */
    @Override
    public String print(LocalDate object, Locale locale) {
        return DateTimeFormatter.ofPattern(getPattern(locale)).format(object);
    }

    /**
     * 判斷本地是美國,還是其它國家
     * @param locale
     * @return
     */
    public static String getPattern(Locale locale)
    {
        return isUnitedStates(locale) ? US_PATTERN : NORMAL_PATTERN;
    }

    /**
     * 是否是美國
     * @param locale
     * @return
     */
    private  static boolean isUnitedStates(Locale locale)
    {
        return Locale.US.getCountry().equals(locale.getCountry());
    }
}

2.建立WEB的構造器

同樣我們在專案下建立一個config的包,同時建立 一個WebConfiguration的類。這個類將會繼承WebMvcConfigurerAdapter, Spring要構造會以我們的日期格式來構造的。

package masterSpringMvc.config;
import masterSpringMvc.dates.USLocalDateFormatter;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.
WebMvcConfigurerAdapter;
import java.time.LocalDate;
@Configuration
public class WebConfiguration extends WebMvcConfigurerAdapter {
@Override public void addFormatters(FormatterRegistry registry) {
registry.addFormatterForFieldType(LocalDate.class, new
USLocalDateFormatter());
}
}

3.呼叫自定義日期格式

1)        首先我們需要在ProfileController新增加下面的程式碼。

@ModelAttribute("dateFormat")
public String localeFormat(Locale locale) {
return USLocalDateFormatter.getPattern(locale);
}

上面程式碼的@ModelAttribute的註解,有點像我們之前用過的model.addAttribute(),也就是預設取值給檢視層。

2)        在檢視層中我們新增下面的程式碼。

<div class="row">
<div class="input-field col s6">
<input th:field="${profileForm.birthDate}" id="birthDate"
type="text" th:placeholder="${dateFormat}"/>
<label for="birthDate">Birth Date</label>
</div>
</div>

4.總結

這一節我們主要是學習瞭如何進行日期格式的轉換,添加了上面的程式碼後,如果你是在美國地區,那麼將會看到的結果是:


但是這裡我們還有問題,那就是客戶端輸入資訊時,我們需要做資訊止的校驗,那麼這個應該實現,在下一節中,我們將會講解。


原始碼路徑:[email protected]:owenwilliam/masterSpringMVC.git






相關推薦

SpringMVC日期處理

在上面的例子中,我們執行時,將會看到的是頁面是報錯的。為了檢視詳細的資訊,我們可以在application.properties中新增logging.level.org.springframework.web=DEBUG這一行的程式碼。這個時候我們執行時,看到的debug的

JAVA學習第十九課java程序的異常處理

num 函數 錯誤 style col 編譯失敗 return [] java 異常處理的捕捉形式: 這是能夠對異常進行針對性處理的方式 六、try、catch的理解 詳細格式: try { //須要被檢測異常的代碼 } catch(異常類 變量)//改變量用

長款或短款的處理

要求 原則 職業 工作 部分 問題 特征 人的 結果 出納人員長年與現金和銀行存款打交道,出現長款或短款是難免的。但是要把差錯率降至最低並徹底杜絕,這就要求出納人員於日常結算時,在“細心”和“認真”上下硬工夫才行。而千萬不能長了款便放一邊了之,短了款自己掏腰包補齊。有果必有

Python 日誌處理 使用正則表達式處理Nginx 日誌

表示 cnblogs sunday sta return __main__ pattern eth 解析 使用正則表達式來處理Nginx 日誌 一、 先對單行的日誌進行分組正則匹配,返回匹配後的結果(字典格式): from datetime import dateti

springMVC學習總結路徑映射和請求方法限定

根路徑 後臺 mapping oca log alt public mes cti springMVC學習總結(二)路徑映射和請求方法限定 一、路徑映射 無參數的訪問路徑 對springmvc項目的訪問路徑,是由根路徑和子路徑組成;在註解式開發中,根路徑標註在類名之上,子

Linux故障處理更改root密碼和修復文件系統

無法識別 丟失 ges 包括 故障處理 磁盤 free roo ext4 Linux故障處理(二)更改root密碼和修復文件系統一、遺忘root用戶的密碼大多數時候Linux主機中具有root權限的用戶只有一個,因此需要通過其他途徑來重設root賬號密碼。最簡單的途徑是在開

CSS兼容處理

bsp test -h lock 現在 -s play AC orm 在IE6及以下版本的瀏覽器中定義小高度: 解決方法:#text { overflow:hidden; height:1px; font-size:0; line-height:0;} 具體詳解:IE6

圖像處理

pan data spa jpg class int gpo UC top opencv訪問圖像像素: Mat image = imread("C:\\Users\\Administrator\\Desktop\\image.jpg"); ofst

Java SpringMVC框架學習httpServeltRequest和Model傳值的區別

urn ont ppi mode array style att 區別 () 為什麽大多程序在controller中給jsp傳值時使用model.addAttribute()而不使用httpServeletRequest.setAttribute()? 事實上model數

SpringMVC基礎配置

ads 註意 ram 客戶 處理 ping 聯合 erp 就是 上一張:SpringMVC環境搭建(一) 今天我們來說說SpringMVC的基礎配置。目前越來越多的主流框架都支持註解,同時我們無敵的Spring也支持基於註解的"零配置"。 註解相比XML的優勢:它可以充

python自然語言處理

1詞性標註 簡單的理解就是對詞性(POS)進行標註,但在不同的領域,詞性可能是不同的,Penn Treebank pos標記庫:https://blog.csdn.net/u010099495/article/details/46776617 其中程式需要安裝兩個依賴包 nlt

影象處理——影象仿射變換

這次實驗是要設計一個可以讓圖形進行繞任意中心任意角度旋轉的函式WarpAffine,其核心大概就是使用雙線性差值進行重取樣。 在數學上,雙線性插值是有兩個變數的插值函式的線性插值擴充套件,其核心思想是在兩個方向分別進行一次線性插值。 在程式碼中實現雙線性插值要注意原影象和目標影象的原

搭建eclipse+tomcat+maven+shiro+springmvc+jpa專案:基本框架搭建

1、pom.xml配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m

岡薩雷斯:數字影象處理:第二章數字圖形基礎——數學工具

陣列操作與矩陣操作的區別: 也就是說,除非特別說明,否則以後所提到的矩陣之間的操作都是元畫素與對應畫素之間的操作。 線性運算與非線性運算(和純數學裡面的定義相同): 例如,求和是線性運算,取最大值是非線性運算 灰度影象的集合與邏輯運算: 在灰度影象領域,集合的

岡薩雷斯:數字影象處理:第二章數字圖形基礎——影象內插,相鄰畫素,鄰接性,距離度量

1.影象內插:從根本上看,內插是用已知資料來估計未知位置的數值的處理。 例如,假設一幅大小為500500畫素的影象要放大1.5倍到75075畫素,一種簡單的放大方法是建立一個假想的750750網格,它與原始影象有相同的間隔,然後將其收縮,使它準確的與原影象匹配。顯然,收縮後的750750網格

處理:命令列檔案

  原文連結: https://knowledge.safe.com/articles/1381/batch-processing-method-2-command-file-1.html?smartspace=chaining-workspaces   問題

opencv影象處理:濾波器

     濾波器在影象處理中的應用非常廣泛,OpenCV也有個直接使用濾波器掩碼(核)的函式filter2D,將影象與核進行卷積運算得到目標影象。卷積是在每一個影象塊與某個運算元(核)之間進行的運算,而核就是一個固定大小的數值陣列。     &n

python時間處理Datetime

上一篇內容瞭解了time模組,接下來看下Datetime模組,這裡主要想解決的問題是如何計算兩個時間的差,並且返回秒,分鐘,小時,所以內容主要更偏向於解決問題,如果大家沒有看到自己需要的,最後會放上官方文件供大家參考。 首先看一下它具有的類及描述:

數字影象處理——邊緣檢測

邊緣是影象中灰度發生急劇變化的區域邊界,影象灰度的變化情況可以用灰度分佈的梯度來表示,數字影象中求導是利用差分近似微分來進行的,實際上常用空域微分運算元通過卷積來完成。 1 一階導數運算元 1.1 Roberts Roberts運算元是一種斜向偏差分的梯度計算方法

使用Flask & Plotly 做股票k線圖互動式視覺化處理

接上一篇,這篇要實現搜尋功能: 建立搜尋頁面: 在templates資料夾內新建main.html檔案,內容如下: <!doctype html> <html lang="en"> <head> <