• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • SpringMVC學習筆記07——自定義類型轉換器解決日期錯誤(ctrl+N搜索類)

    標簽: SpringMVC  java

    繼續沿用代碼。。

    1. 修改User.java,修改代碼如下

    public class User implements Serializable {
    
        private String name;
        private String password;
        private Date birthday;
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "name='" + name + '\'' +
                    ", password='" + password + '\'' +
                    ", birthday=" + birthday +
                    '}';
        }
    }
    

    2. 在index.jsp中添加如下代碼

    <form action="hello/testConvertor" method="post">
        姓名:<input type="text" name="name"/>
        密碼:<input type="text" name="password"/>
        生日:<input type="text" name="birthday"/>
    
        <input type="submit" value="提交"/>
    </form>
    

    3. 在HelloController.java``中添加如下代碼

    @RequestMapping(value = "/testConvertor")
        public String testConvertor(User user) {
            System.out.println("testConvertor方法執行了");
            System.out.println(user);
            return "success";
        }
    

    4. 創建如下轉換器目錄

    在這里插入圖片描述

    • StringToDate.java

      public class StringToDate implements Converter<String, Date> {
          /**
           * 將字符串按照自己定義的模式進行日期類型轉換
           * @param s 傳入的字符串
           * @return
           */
          @Override
          public Date convert(String s) {
              // 判斷字符串是否為空
              if (s == null || s.trim().equals("")){
                  throw new RuntimeException("用戶輸入有誤或未輸入");
              }
              DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
      
              try {
                  // 進行日期轉換后返回轉換結果
                  return format.parse(s);
              } catch (ParseException e) {
                  e.printStackTrace();
                  throw new RuntimeException("數據類型轉換出現錯誤");
              }
          }
      }
      

    5. 在springmvc.xml文件中添加如下代碼

    	<!--配置自定義類型轉換器-->
        <bean class="org.springframework.context.support.ConversionServiceFactoryBean" id="conversionServiceFactoryBean">
            <property name="converters">
                <set>
                    <bean class="com.it.Converter.StringToDate"/>
                </set>
            </property>
        </bean>
        <!-- 配置spring開啟注解mvc的支持 -->
        <mvc:annotation-driven conversion-service="conversionServiceFactoryBean"/>
    </beans>
    

    6. 啟動tomcat進行測試

    • 瀏覽器
      在這里插入圖片描述
      在這里插入圖片描述

    • 控制臺
      在這里插入圖片描述

    • 注意這樣做后,以前的默認的輸入方式“1777/5/21”則失效

    版權聲明:本文為weixin_44235532原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/weixin_44235532/article/details/108685952

    智能推薦

    SpringMVC自定義類型轉換器

    在表單提交得的數據類型都是字符串類型的,但是后臺定義的是int類型的,數據還是可以封裝進去,SpringMVC默認是進行數據類型轉換。但是對于日期類型的數據進行轉換,就會出現錯誤。 這時我們就需要自定義進行數據封裝。就比如下面的類型轉換(日期的格式轉換) Controller類 使用對象進行數據封裝  執行的代碼: 對于輸入的2021-04-14默認的數據類型是無法轉換的,輸入2021/...

    SSM筆記-SpringMVC的自定義類型轉換器

    1、步驟: ①建立對應的bean和dao ②建立form表單 ③建立handler(①handler的參數需要更表單控件name值一樣 ②要用@RequestParam修飾方法的參數) ④建立converter類,且繼承org.springframework.core.convert.converter.Converter ⑤實現org.springframework.core.convert.c...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    猜你喜歡

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    統計學習方法 - 樸素貝葉斯

    引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...

    精品国产乱码久久久久久蜜桃不卡