ホームページ Java &#&チュートリアル SpringMVCの型変換と検証方法の紹介(コード付き)

SpringMVCの型変換と検証方法の紹介(コード付き)

Sep 28, 2018 pm 03:54 PM
springmvc

この記事では SpringMVC の型変換と検証メソッドを紹介します (コード付き)。必要な方は参考にしていただければ幸いです。

Spring mvc データ バインディング プロセス:

SpringMvc は、ServletRequest オブジェクトとターゲット メソッドの仮パラメータ インスタンスを WebDataBinderFactory インスタンスに渡して作成します。 DataBinder インスタンス オブジェクト。 DataBinder は、SpringMvc コンテキストに組み込まれた ConversionService コンポーネントを呼び出して型変換とデータの書式設定を実行し、サーブレットのリクエスト情報を仮パラメータ オブジェクトに埋めます。 Validator の主キーを呼び出して、リクエスト情報にバインドされた仮パラメータ オブジェクトの選択データの正当性を検証し、最終的にデータ バインディング結果の BindingData オブジェクトを生成します。 SpringMVC は、BindingResult 内の仮パラメータ オブジェクトと検証エラー オブジェクトを抽出し、それらを処理メソッドの対応するパラメータに代入します。

ソース コードから、WebDataBinderFactory を通じて DataBinder オブジェクトが作成されていることがわかります。

カスタム型コンバーター

特別な状況に遭遇した場合、独自の型コンバーターを定義する必要がある場合があります。次に、文字列を emp オブジェクトに変換するカスタム型コンバータについて説明します。ページがデータ バインディングまたは型変換を完了できない場合、BindingResult を使用して例外情報を取得できます。

Spring では 3 種類のコンバータ インターフェイスが定義されており、それを実装するコンバータ インターフェイスはカスタム コンバータとして ConversionServiceFactoryBean に登録できます。

Convertre: S タイプを T タイプに変換します。

ConverterFactory: 同じシリーズの複数の「同種の」コンバーターを一緒にカプセル化します。ある型を別の型およびサブクラス オブジェクト (文字列から数値、数値のサブクラスへなど) に変換する場合は、このコンバーターを使用できます。

##GenericConverter: 型変換は、ソース クラス オブジェクトとターゲット クラス オブジェクトが配置されているホスト クラスのコンテキスト情報に基づいて選択されます。

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 の型コンバーターのコア インターフェイスです。カスタム型コンバーターを追加するには、このインターフェイスを実装するか、ConversionServiceFactoryBean を使用して Spring の IOC コンテナーに最初の ConversionService を作成し、Bean で構成する必要があります。型コンバーターの実装クラスの場合、SpringMvc がメソッドの仮パラメーター バインディングを処理するときに、型コンバーターが自動的に呼び出されます。

<!--将非mapping配置下的请求交给默认的Servlet来处理 -->
    <mvc:default-servlet-handler />
    <bean id="conversionService"
        class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <ref bean="userConverter" />
            </set>
        </property>
    </bean>
    <!-- 注册类型转换器 -->
    <mvc:annotation-driven conversion-service="conversionService" />
ログイン後にコピー

実際の開発では、次の設定を行う必要があります: tag

データのフォーマット

属性の入力/出力のフォーマット、それでも型変換のカテゴリに属します。 Spring は、書式設定モジュールで ConversionService インターフェイスを実装する FarmattingConversionService 実装クラスを定義します。この実装クラスは GenericConversionService を拡張するため、型変換機能と書式設定機能の両方を備えています。 FormattingConversionService には、前者の構築に使用される FormattingConversionServiceFactoryBean ファクトリ クラスがあります。これを登録したいのです。

<mvc:annotation-driven conversion-service="FormattingConversionServiceFactoryBean" />
ログイン後にコピー

JSR303

jsr303 は、Bean データの有効性を検証するために Java が提供する標準フレームワークで、JavaEE6.0 および JSR303 に既に組み込まれています。 Bean プロパティに @NotNull や @Max などの標準データをマークして検証ルールを指定し、マークされた検証インターフェイスを通じて Bean を検証します。

@NotEmpty
    @NotNull
    private String name;
    
    @NotNull
    @NotEmpty
    private String age;
    
    @NotNull
    @NotEmpty
    @Email
    private String email;
ログイン後にコピー

フロント デスクで SpringMVC によって提供される Form タグを使用し、Form: エラー パスを使用して属性をバインドします

@RequestMapping(value="/student",method=RequestMethod.POST)
    public String add(@Valid()Student student,BindingResult result){
        if (!result.hasErrors()) {//判断是否有格式转换错误或者其他校验没通过
            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の型変換と検証方法の紹介(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SpringBootとSpringMVCの比較と差異分析 SpringBootとSpringMVCの比較と差異分析 Dec 29, 2023 am 11:02 AM

SpringBoot と SpringMVC はどちらも Java 開発で一般的に使用されるフレームワークですが、それらの間には明らかな違いがいくつかあります。この記事では、これら 2 つのフレームワークの機能と使用法を調べ、その違いを比較します。まず、SpringBoot について学びましょう。 SpringBoot は、Spring フレームワークに基づいたアプリケーションの作成と展開を簡素化するために、Pivo​​tal チームによって開発されました。スタンドアロンの実行可能ファイルを構築するための高速かつ軽量な方法を提供します。

SpringBoot と SpringMVC の違いは何ですか? SpringBoot と SpringMVC の違いは何ですか? Dec 29, 2023 am 10:46 AM

SpringBoot と SpringMVC の違いは何ですか? SpringBoot と SpringMVC は、Web アプリケーションを構築するための 2 つの非常に人気のある Java 開発フレームワークです。これらは別々に使用されることが多いですが、両者の違いは明らかです。まず、SpringBoot は Spring フレームワークの拡張版または強化版とみなすことができます。 Spring アプリケーションの初期化と構成プロセスを簡素化し、開発者を支援するように設計されています。

spring と springmvc の違いは何ですか spring と springmvc の違いは何ですか Dec 29, 2023 pm 05:02 PM

spring と springmvc の違い: 1. 位置付けと機能、2. コア機能、3. アプリケーション領域、4. 拡張性。詳細な紹介: 1. 位置付けと機能 Spring は、依存関係の注入、アスペクト指向プログラミング、トランザクション管理などの機能を提供する包括的なアプリケーション開発フレームワークであり、エンタープライズ レベルのアプリケーションの開発を簡素化するように設計されており、Spring MVC はそのSpring フレームワーク。そのモジュールは Web アプリケーションの開発に使用され、MVC パターンを実装します。2. コア機能など。

SpringBoot と SpringMVC の違いは何ですか? SpringBoot と SpringMVC の違いは何ですか? Dec 29, 2023 pm 05:19 PM

SpringBootとSpringMVCはJava開発でよく使われるフレームワークで、どちらもSpringフレームワークで提供されていますが、機能や使用方法にいくつかの違いがあります。この記事では、SpringBootとSpringMVCそれぞれの特徴と違いを紹介します。 1. SpringBoot の特徴: 構成の簡素化: SpringBoot は、構成より規約の原則により、プロジェクトの構成プロセスを大幅に簡素化します。プロジェクトや開発者に必要なパラメータを自動的に設定できます。

springboot と springmvc の違いは何ですか springboot と springmvc の違いは何ですか Jun 07, 2023 am 10:10 AM

springboot と springmvc の違いは、1. 意味の違い、2. 構成の違い、3. 依存関係の違い、4. 開発時間の違い、5. 生産性の違い、6. JAR パッケージ化機能の実装方法の違い、7. バッチ処理の有無です。提供される機能、8. さまざまな機能、9. さまざまなコミュニティおよびドキュメントのサポート、10. デプロイメント記述子が必要かどうか。

Java API開発におけるWebサービス処理にSpringMVCを利用する Java API開発におけるWebサービス処理にSpringMVCを利用する Jun 17, 2023 pm 11:38 PM

インターネットの発展に伴い、Web サービスはますます一般的になってきています。アプリケーション プログラミング インターフェイスとして、JavaAPI はさまざまなアプリケーション シナリオに適応するために新しいバージョンを常にリリースしています。 SpringMVC は、人気のあるオープンソース フレームワークとして、Web アプリケーションを簡単に構築するのに役立ちます。この記事では、SpringMVC の設定、コントローラーの作成、使用方法など、JavaAPI 開発における Web サービス処理に SpringMVC を使用する方法を詳しく説明します。

JavaのSpringMVCインターセプターの使い方 JavaのSpringMVCインターセプターの使い方 May 13, 2023 pm 02:55 PM

インターセプタの役割 SpringMVC のインターセプタは、サーブレット開発におけるフィルタに似ており、プロセッサの前処理と後処理に使用されます。インターセプタが一定の順序でチェーン状に接続されており、このチェーンをインターセプタチェーン(InterceptorChain)と呼びます。インターセプトされたメソッドまたはフィールドにアクセスすると、インターセプター チェーン内のインターセプターが、以前に定義された順序で呼び出されます。インターセプターは、AOP のアイデアを具体的に実装したものでもあります。インターセプターとフィルターの違い: フィルター (フィルター) インターセプター (インターセプター) の使用範囲はサーブレット仕様の一部であり、任意の JavaWeb プロジェクトで使用できます。

SpringBoot と SpringMVC の類似点と相違点を比較する SpringBoot と SpringMVC の類似点と相違点を比較する Dec 29, 2023 am 08:30 AM

SpringBoot と SpringMVC の類似点と相違点の分析 SpringBoot と SpringMVC は、Java 分野では非常に重要な開発フレームワークです。どちらも Spring フレームワークの一部ですが、使用方法と機能には明らかな違いがいくつかあります。この記事では、SpringBoot と SpringMVC を比較し、それらの類似点と相違点を分析します。まず、SpringBoot について学びましょう。スプリングボー

See all articles