• <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自定義類型轉換器

    標簽: SpringMvc  spring MVC

    簡介

    SpringMVC上下文中內建了很多的類型轉換器,可以完成絕大多數的Java類型的轉換工作。
    在這里插入圖片描述


    ConversionService是類型轉換核心接口。
    可以利用ConversionServiceFactoryBean在SpringIOC容器中定義一個ConversionService,
    Spring將自動的識別IOC容器中的ConversionService,
    并在bean屬性配置以及SpringMVC處理方法入參綁定等場合使用這個ConversionService進行數據類型轉換。
    所以可以通過ConversionServiceFactoryBean的converters屬性注冊自定義類型轉換器。


    Spring支持的類型轉換器

    Spring中定義了三種類型轉換的接口,實現任意一個接口都可以作為自定義的類型轉換器,自定義的類型轉換器注冊到ConversionServiceFactoryBean中,類型轉換器就生效了。

    • Converter<S,T> (常用的一種
    • ConverterFactory
    • GenericConverter

    實例

    • 實體類
    public class Student {
    	
    	private String name;
    	private String sex;
    	private Integer age;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getSex() {
    		return sex;
    	}
    	public void setSex(String sex) {
    		this.sex = sex;
    	}
    	public Integer getAge() {
    		return age;
    	}
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    	@Override
    	public String toString() {
    		return "Student [name=" + name + ", sex=" + sex + ", age=" + age + "]";
    	}
    }
    
    • 編寫頁面
    	<form action="${pageContext.request.contextPath}/insertstu" method="post">
    		<input type="text" name="student" value="YYY-Male-22">
    		<button>Submit</button>
    	</form>
    
    • 編寫請求處理器的目標方法
    @RequestMapping(value="insertstu",method=RequestMethod.POST)
    	public String testConverter(@RequestParam("student") Student student) {
    		
    		System.out.println(student);
    		
    		return "success";
    	}
    
    • 編寫自動義的類型轉換器
    package com.nhkj.util;
    import org.springframework.core.convert.converter.Converter;
    import com.nhkj.entity.Student;
    
    public class StringToStudentConverter implements Converter<String, Student> {
    	@Override
    	public Student convert(String arg0) {
    		Student stu = new Student();
    		
    		//分割字符串
    		String properties[] = arg0.split("-");
    		
    		stu.setName(properties[0]);
    		stu.setSex(properties[1]);
    		stu.setAge(Integer.parseInt(properties[2]));
    		
    		return stu;
    	}
    
    }
    
    
    • 配置文件
    
    <!-- 配置ConversionFactoryBean 的 converters 屬性 -->
     <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    	  	<property name="converters">
    	  		<set>
    				<bean class="com.nhkj.util.StringToStudentConverter"></bean>
    			</set>
    	  	</property>
     </bean>
     <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
    	  
    
    版權聲明:本文為qq_44866169原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_44866169/article/details/107345770

    智能推薦

    自定義類型轉換器

    自定義類型轉換器 字符串變成對象 自定義步驟 1 修改input.jsp頁面,實現Employee字符串變為POJO 2 Handler 3 自定義的轉化器(@Component) 4 springmvc的配置文件ConversionServiceFactoryBean 5 <mvc:annotation-driven>引用轉換器 6 debug  ...

    SpringMVC自定義ViewSolver(視圖解析器) 和 Convert(類型轉換器)

    ViewSolver的作用我就不多說了. Convert的作用說一下: 在前端傳遞給后端數據的時候,會有一些問題,如數據的類型轉換,數據的格式化,數據的校驗等 SpringMVC有一個WebDataBind(DataBinder) 來完成數據綁定功能,而這個WebDataBind又有許多組件來完成各種功能 ConversionService組件:負責數據類型轉換和格式化功能,將請求信息填充到入參對...

    SpringMVC學習筆記14-----數據綁定與自定義類型轉換器

    一、問題分析        在之前的增刪改查中,數據都是通過表單傳向方法然后轉化成相應的數據類型!那么如果我們在java bean中再添加一個日期屬性birth時,就會有三個問題: 1.如何將表單中的字符串格式轉向日期格式:數據類型轉換 2.表單中輸入的字符串格式應該是怎么樣的:數據類型格式化 3.這是個生日屬性,既然是生日屬性就應該是當前日期的前面的時間,...

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

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

    SpringMVC中數據綁定及自定義類型轉換器

    這篇博客記錄一下SpringMVC中的數據綁定,以及如何自定義類型轉換器 數據綁定 Spring MVC 主框架將 ServletRequest 對象及目標方法的入參實例傳遞給 WebDataBinderFactory 實例,以創建 DataBinder 實例對象. DataBinder 調用裝配在 Spring MVC 上下文中的 ConversionService 組件進行數據類型轉換、數據格...

    猜你喜歡

    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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

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