国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 Java java教程 SpringMVC的型別轉(zhuǎn)換及驗(yàn)證方法介紹(附程式碼)

SpringMVC的型別轉(zhuǎn)換及驗(yàn)證方法介紹(附程式碼)

Sep 28, 2018 pm 03:54 PM
springmvc

這篇文章帶給大家的內(nèi)容是關(guān)於SpringMVC的類型轉(zhuǎn)換及驗(yàn)證方法介紹(附程式碼),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有幫助。

Spring mvc 資料綁定流程:

#SpringMvc將ServletRequest物件及目標(biāo)方法的形參實(shí)例傳給WebDataBinderFactory實(shí)例,以建立DataBinder實(shí)例物件。 DataBinder呼叫組裝在SpringMvc上下文中的ConversionService元件進(jìn)行類型轉(zhuǎn)換和資料格式化工作,將Servlet請求資訊填入形參物件中。呼叫Validator主鍵對已經(jīng)綁定了請求資訊的形參物件精選資料有效性驗(yàn)證,並最終產(chǎn)生資料綁定結(jié)果BindingData物件。 SpringMVC抽取BindingResult中的形參對象和校驗(yàn)錯(cuò)誤對象,將他們賦給處理方法的相應(yīng)參數(shù)

我們查看源代碼可以看到,透過WebDataBinderFactory創(chuàng)建DataBinder對象

自訂類型轉(zhuǎn)換器

當(dāng)我們碰到一些特殊場合,有可能需要我們自己定義型別轉(zhuǎn)換器。下麥呢來講解一個(gè)自訂類型轉(zhuǎn)器,將字串轉(zhuǎn)換成emp對象,當(dāng)頁面無法完成資料綁定或類型轉(zhuǎn)換時(shí),springmvc會拋出異常,異常資訊可以使用BindingResult來進(jìn)行取得。

Spring定義了三種類型的轉(zhuǎn)換器接口,實(shí)作任意一個(gè)轉(zhuǎn)換器接口都可以作為自訂轉(zhuǎn)換器註冊到ConversionServiceFactoryBean中。

Convertre:將S型別轉(zhuǎn)換為T型別。

ConverterFactory:將相同系類的多個(gè)「同質(zhì)」Converter封裝在一起,如果希望一種類型轉(zhuǎn)換成另一種類型以及子類物件(例如String轉(zhuǎn)換成Number以Number的子類),可以使用該轉(zhuǎn)換器

GenericConverter:會根據(jù)來源類別物件以及目標(biāo)類別物件所在的宿主類別中的上下文資訊精選類型轉(zhuǎn)換。

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時(shí)SpringMVC中類型轉(zhuǎn)換器的核心接口,要添加自定義類型轉(zhuǎn)換器,需要實(shí)現(xiàn)該接口/利用ConversionServiceFactoryBean在Spring的IOC容器中第一一個(gè)ConversionService,並在Bean屬性配置對於的類型轉(zhuǎn)換器的實(shí)作類,SpringMvc處理方法的形參綁定時(shí)就會自動呼叫該類型轉(zhuǎn)換器。

<!--將非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" />

在實(shí)際的開發(fā)同需要配置:標(biāo)籤

資料格式化

#對屬性的輸入/輸出格式化,其本質(zhì)來講仍屬於型別轉(zhuǎn)換的範(fàn)疇。 Spring在格式化模組中定義一個(gè)實(shí)作ConversionService介面的FarmattingConversionService實(shí)作類別,該實(shí)作類別擴(kuò)充了GenericConversionService,因此它既具有型別轉(zhuǎn)換的功能具有具有格式化的功能。 FormattingConversionService擁有一個(gè)FormattingConversionServiceFactoryBean工廠類,後者用於建構(gòu)前者。我們要註冊這個(gè)

<mvc:annotation-driven conversion-service="FormattingConversionServiceFactoryBean" />

JSR303

jsr303時(shí)java為bean資料合法性校驗(yàn)提供的標(biāo)準(zhǔn)框架,它已經(jīng)包含在JavaEE6.0中,JSR303通過在Bean屬性上標(biāo)註類似@NotNull,@Max等標(biāo)準(zhǔn)的資料指定驗(yàn)證規(guī)則,並透過標(biāo)註的驗(yàn)證介面對Bean進(jìn)行驗(yàn)證。

@NotEmpty
    @NotNull
    private String name;
    
    @NotNull
    @NotEmpty
    private String age;
    
    @NotNull
    @NotEmpty
    @Email
    private String email;

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

@RequestMapping(value="/student",method=RequestMethod.POST)
    public String add(@Valid()Student student,BindingResult result){
        if (!result.hasErrors()) {//判斷是否有格式轉(zhuǎn)換錯(cuò)誤或者其他校驗(yàn)沒通過
            userService.addStudent(student);
            return "redirect:list";
        }else
            return "addPage";
    }

SpringMvc提示訊息國際化

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

#

以上是SpringMVC的型別轉(zhuǎn)換及驗(yàn)證方法介紹(附程式碼)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SpringBoot與SpringMVC的比較及差別分析 SpringBoot與SpringMVC的比較及差別分析 Dec 29, 2023 am 11:02 AM

SpringBoot和SpringMVC都是Java開發(fā)中常用的框架,但它們之間有一些明顯的差異。本文將探究這兩個(gè)框架的特點(diǎn)和用途,並對它們的差異進(jìn)行比較。首先,我們來了解一下SpringBoot。 SpringBoot是由Pivotal團(tuán)隊(duì)開發(fā)的,它旨在簡化基於Spring框架的應(yīng)用程式的建立和部署。它提供了一種快速、輕量級的方式來建立獨(dú)立的、可執(zhí)行

比較SpringBoot與SpringMVC的差異是什麼? 比較SpringBoot與SpringMVC的差異是什麼? Dec 29, 2023 am 10:46 AM

SpringBoot與SpringMVC的不同之處在哪裡? SpringBoot和SpringMVC是兩個(gè)非常流行的Java開發(fā)框架,用於建立Web應(yīng)用程式。儘管它們經(jīng)常分別被使用,但它們之間的差異也是很明顯的。首先,SpringBoot可以被看作是一個(gè)Spring框架的擴(kuò)充或增強(qiáng)版。它旨在簡化Spring應(yīng)用程式的初始化和配置過程,以幫助開發(fā)人

spring和springmvc有哪些差別 spring和springmvc有哪些差別 Dec 29, 2023 pm 05:02 PM

spring和springmvc的區(qū)別:1、定位和功能;2、核心功能;3、應(yīng)用領(lǐng)域;4、擴(kuò)展性。詳細(xì)介紹:1、定位和功能,Spring是一個(gè)綜合性的應(yīng)用程式開發(fā)框架,提供了依賴注入、面向切面編程、事務(wù)管理等功能,旨在簡化企業(yè)級應(yīng)用程式的開發(fā),而Spring MVC是Spring框架中的一個(gè)模組,用於Web應(yīng)用程式的開發(fā),實(shí)現(xiàn)了MVC模式;2、核心功能等等。

SpringBoot與SpringMVC的差別是什麼? SpringBoot與SpringMVC的差別是什麼? Dec 29, 2023 pm 05:19 PM

SpringBoot和SpringMVC是Java開發(fā)中常用的兩個(gè)框架,它們都是由Spring框架所提供的,但在功能和使用方式上有一些區(qū)別。本文將分別介紹SpringBoot和SpringMVC的特點(diǎn)和區(qū)別。一、SpringBoot的特點(diǎn):簡化配置:SpringBoot透過約定優(yōu)於配置的原則,大大簡化了專案的配置過程。它可以自動配置專案所需的參數(shù),開發(fā)人

springboot和springmvc有哪些差別 springboot和springmvc有哪些差別 Jun 07, 2023 am 10:10 AM

springboot和springmvc區(qū)別是:1、意義不同;2、配置不同;3、依賴項(xiàng)不同;4、開發(fā)時(shí)間不同;5、生產(chǎn)力不同;6、實(shí)現(xiàn)JAR打包功能的方式不同;7、是否提供批次處理功能;8、作用不同;9、社群和文件支援不同;10、是否需要部署描述符。

Java的SpringMVC攔截器怎麼用 Java的SpringMVC攔截器怎麼用 May 13, 2023 pm 02:55 PM

攔截器(interceptor)的作用SpringMVC的攔截器類似於Servlet開發(fā)中的過濾器Filter,用於對處理器進(jìn)行預(yù)處理和後處理。將攔截器依一定的順序聯(lián)結(jié)成一條鏈,這條鏈稱為攔截器鏈(InterceptorChain)。在存取被攔截的方法或欄位時(shí),攔截器鏈中的攔截器就會依其先前定義的順序被呼叫。攔截器也是AOP思想的具體實(shí)作。攔截器和過濾器區(qū)別區(qū)別過濾器(Filter)攔截器(Intercepter)使用範(fàn)圍是servlet規(guī)格中的一部分,任何JavaWeb工程都可以使用是Spri

比較SpringBoot和SpringMVC的異同點(diǎn) 比較SpringBoot和SpringMVC的異同點(diǎn) Dec 29, 2023 am 08:30 AM

解析SpringBoot和SpringMVC之間的異同SpringBoot和SpringMVC是Java領(lǐng)域中非常重要的開發(fā)架構(gòu)。雖然它們都屬於Spring框架的一部分,但在使用和功能上有一些明顯的區(qū)別。本文將對SpringBoot和SpringMVC進(jìn)行比較,解析它們之間的異同。首先,讓我們來了解一下SpringBoot。 SpringBo

Java API 開發(fā)中使用 SpringMVC 進(jìn)行 Web 服務(wù)處理 Java API 開發(fā)中使用 SpringMVC 進(jìn)行 Web 服務(wù)處理 Jun 17, 2023 pm 11:38 PM

隨著網(wǎng)路的發(fā)展,Web服務(wù)越來越普遍。 JavaAPI作為一種應(yīng)用程式接口,也不斷地推出新的版本來適應(yīng)不同的應(yīng)用場景。而SpringMVC作為一種流行的開源框架,能夠幫助我們輕鬆地建立Web應(yīng)用程式。本文將詳細(xì)講解在JavaAPI開發(fā)中,如何使用SpringMVC進(jìn)行Web服務(wù)處理,包括配置SpringMVC、編寫控制器、使用

See all articles