一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務(wù)器之家 - 編程語言 - Java教程 - 詳解SpringMVC的類型轉(zhuǎn)換及驗證方法

詳解SpringMVC的類型轉(zhuǎn)換及驗證方法

2021-06-02 15:53Java之家 Java教程

在本篇文章里面我們給大家詳細(xì)分析了SpringMVC的類型轉(zhuǎn)換及驗證方法的相關(guān)知識,對此有需要的朋友們學(xué)習(xí)下吧。

spring mvc 數(shù)據(jù)綁定流程

springmvc將servletrequest對象及目標(biāo)方法的形參實例傳給webdatabinderfactory實例,以創(chuàng)建databinder實例對象。databinder調(diào)用裝配在springmvc上下文中的conversionservice組件進行類型轉(zhuǎn)換和數(shù)據(jù)格式化工作,將servlet請求信息填充到形參對象中。調(diào)用validator主鍵對已經(jīng)綁定了請求信息的形參對象精選數(shù)據(jù)有效性驗證,并最終生成數(shù)據(jù)綁定結(jié)果bindingdata對象。springmvc抽取bindingresult中的形參對象和校驗錯誤對象,將他們賦給處理方法的相應(yīng)參數(shù)

我們查看源代碼可以看到,通過webdatabinderfactory創(chuàng)建databinder對象

詳解SpringMVC的類型轉(zhuǎn)換及驗證方法

自定義類型轉(zhuǎn)換器

當(dāng)我們碰到一些特殊場合,有可能需要我們自己定義類型轉(zhuǎn)換器。下麥呢來講解一個自定義類型轉(zhuǎn)器,將字符串轉(zhuǎn)換成emp對象,當(dāng)頁面無法完成數(shù)據(jù)綁定或者類型轉(zhuǎn)換時,springmvc會拋出異常,異常信息可以使用bindingresult來進行獲取。

spring定義了三種類型的轉(zhuǎn)換器接口,實現(xiàn)任意一個轉(zhuǎn)換器接口都可以作為自定義轉(zhuǎn)換器注冊到conversionservicefactorybean中。

convertre<s,t>:將s類型轉(zhuǎn)換為t類型。

converterfactory:將相同系類的多個“同質(zhì)”converter封裝在一起,如果希望一種類型轉(zhuǎn)換成另一種類型以及子類對象(例如string轉(zhuǎn)換成number以number的子類),可以使用該轉(zhuǎn)換器

genericconverter:會根據(jù)源類對象以及目標(biāo)類對象所在的宿主類中的上下文信息精選類型轉(zhuǎn)換。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.spring.mvc.controller;
import org.springframework.core.convert.converter.converter;
import org.springframework.stereotype.component;
@component
public class userconverter implements converter<string, user>{
 @override
 public user convert(string source) {
  system.out.println(source);
  string users [] = source.split("-");
  user user = new user();
  user.setuno(integer.valueof(users[0]));
  user.setusername(users[1]);
  user.setuserpass(users[2]);
  return user;
 }
}

conversionservice時springmvc中類型轉(zhuǎn)換器的核心接口,要添加自定義類型轉(zhuǎn)換器,需要實現(xiàn)該接口/利用

conversionservicefactorybean在spring的ioc容器中第一一個conversionservice,并在bean屬性配置對于的類型轉(zhuǎn)換器的實現(xiàn)類,springmvc處理方法的形參綁定時就會自動調(diào)用該類型轉(zhuǎn)換器。

?
1
2
3
4
5
6
7
8
9
10
11
12
<!--將非mapping配置下的請求交給默認(rèn)的servlet來處理 -->
 <mvc:default-servlet-handler />
 <bean id="conversionservice"
  class="org.springframework.context.support.conversionservicefactorybean">
  <property name="converters">
   <set>
    <ref bean="userconverter" />
   </set>
  </property>
 </bean>
 <!-- 注冊類型轉(zhuǎn)換器 -->
 <mvc:annotation-driven conversion-service="conversionservice" />

在實際的開發(fā)同需要配置:<mvc:annotation-driven />標(biāo)簽

數(shù)據(jù)格式化

對屬性的輸入/輸出格式化,其本質(zhì)來講依然屬于類型轉(zhuǎn)換的范疇。spring在格式化模塊中定義一個實現(xiàn)conversionservice接口的farmattingconversionservice實現(xiàn)類,該實現(xiàn)類擴展了genericconversionservice,因此它既具有類型轉(zhuǎn)換的功能有具有格式化的功能。formattingconversionservice擁有一個formattingconversionservicefactorybean工廠類,后者用于構(gòu)造前者。我們要注冊這個

?
1
<mvc:annotation-driven conversion-service="formattingconversionservicefactorybean" />

jsr303

jsr303時java為bean數(shù)據(jù)合法性校驗提供的標(biāo)準(zhǔn)框架,它已經(jīng)包含在javaee6.0中,jsr303通過在bean屬性上標(biāo)注類似@notnull,@max等標(biāo)準(zhǔn)的數(shù)據(jù)指定驗證規(guī)則,并通過標(biāo)注的驗證接口對bean進行驗證。

?
1
2
3
4
5
6
7
8
9
10
11
12
@notempty
 @notnull
 private string name;
  
 @notnull
 @notempty
 private string age;
  
 @notnull
 @notempty
 @email
 private string email;

我們在前臺使用springmvc提供的form標(biāo)簽使用form:errors path 綁定屬性即可

?
1
2
3
4
5
6
7
8
@requestmapping(value="/student",method=requestmethod.post)
 public string add(@valid()student student,bindingresult result){
  if (!result.haserrors()) {//判斷是否有格式轉(zhuǎn)換錯誤或者其他校驗沒通過
   userservice.addstudent(student);
   return "redirect:list";
  }else
   return "addpage";
 }

springmvc提示消息國際化

?
1
2
3
4
<!-- 注冊國際化信息,必須有id,指定資源文件名稱,資源文件在src目錄下 -->
<bean id="messagesource" class="org.springframework.context.support.resourcebundlemessagesource">
 <property name="basename" value="message"></property>
 </bean>

詳解SpringMVC的類型轉(zhuǎn)換及驗證方法

延伸 · 閱讀

精彩推薦
  • Java教程詳解Java讀取Jar中資源文件及示例代碼

    詳解Java讀取Jar中資源文件及示例代碼

    這篇文章主要介紹了詳解Java讀取Jar中資源文件及實現(xiàn)代碼的相關(guān)資料,在開發(fā)java項目的時候,經(jīng)常會用到j(luò)ar包,這里就說下如何讀取,需要的朋友可以參考...

    feticoolo1972020-12-07
  • Java教程Java奇淫技巧之如何寫最少的代碼

    Java奇淫技巧之如何寫最少的代碼

    由于性格原因,筆者很難沉下心來進行嚴(yán)肅的系統(tǒng)學(xué)習(xí),總是喜歡折騰一些奇淫技巧,非常喜歡代碼設(shè)計,扣代碼的細(xì)節(jié),所以本次分享一下我所知道的如...

    是Kerwin啊3772020-12-15
  • Java教程Spring類型轉(zhuǎn)換 ConversionSerivce Convertor解析

    Spring類型轉(zhuǎn)換 ConversionSerivce Convertor解析

    這篇文章主要介紹了Spring類型轉(zhuǎn)換 ConversionSerivce Convertor的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下 ...

    WindWant3322020-07-04
  • Java教程Struts2學(xué)習(xí)筆記(7)-訪問Web元素

    Struts2學(xué)習(xí)筆記(7)-訪問Web元素

    這篇文章主要介紹Struts2中訪問Web元素的方法,希望能給大家做一個參考。 ...

    meaijojo4212020-05-15
  • Java教程java解析xml之dom4j解析xml示例分享

    java解析xml之dom4j解析xml示例分享

    DOM4J具有性能優(yōu)異、功能強大和極端易用使用的特點,只要懂得DOM基本概念,就可以通過dom4j的api文檔來解析xml,dom4j是一套開源的api。實際項目中,往往選擇...

    java教程網(wǎng)2752019-10-29
  • Java教程Springboot日期轉(zhuǎn)換器實現(xiàn)代碼及示例

    Springboot日期轉(zhuǎn)換器實現(xiàn)代碼及示例

    這篇文章主要介紹了Springboot日期轉(zhuǎn)換器實現(xiàn)代碼及示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可...

    鼓搗貓膩5232020-08-26
  • Java教程Java利用endorsed如何覆蓋jdk提供的類詳解

    Java利用endorsed如何覆蓋jdk提供的類詳解

    這篇文章主要給大家介紹了關(guān)于Java利用endorsed如何覆蓋jdk提供的類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考...

    jijs4782020-12-26
  • Java教程淺談Java中replace與replaceAll區(qū)別

    淺談Java中replace與replaceAll區(qū)別

    這篇文章主要介紹了Java中replace與replaceAll區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨...

    童夢國度6072019-06-21
主站蜘蛛池模板: 韩国三级 720p | 日韩成人免费aa在线看 | 四虎e234hcom | 亚洲、国产综合视频 | 亚洲国产日韩制服在线观看 | 青青草色 | 99综合在线 | 免费网站看v片在线香蕉 | 2018久久精品热在线观看 | 免费在线公开视频 | 亚洲天堂伦理 | 99视频久久精品久久 | 合欢视频免费 | 日产精品一卡2卡三卡4乱码久久 | 91亚洲精品第一综合不卡播放 | 黄动漫软件车车好快的车车 | 天天做天天爱天天综合网 | 国外欧美一区另类中文字幕 | 久久精品视频在线看 | 色老板在线观看 | 99国产热| 夫妇交换小说 | sese在线播放 | 99视频观看 | 亚洲无人区乱码中文字幕 | 成人榴莲视频 | 爽好舒服宝贝添奶吻戏 | 国产精品亚洲专区在线播放 | 日韩一级在线观看 | 爸爸的宝贝小说全文在线阅读 | 爱草影院 | 茄子香蕉视频 | a性片| 2022超帅男同gayxxx | 毛片视频在线免费观看 | 久久永久免费视频 | 白丝校花掀起短裙呻吟小说 | 国产午夜精品久久久久小说 | 四虎播放器 | 亚洲精品国产AV成人毛片 | 国产大胆歌舞团网站 |