目次
Eclipse のデモの構造
ホームページ Java &#&チュートリアル Spring で WebDataBinder を使用するにはどうすればよいですか?

Spring で WebDataBinder を使用するにはどうすればよいですか?

Jul 18, 2017 am 09:56 AM
spring web

要点を言えば、今でも同じ古いルールです。 開発時には、html や jsp からバックグラウンドにパラメータを渡すことがよくありますが、渡されたデータをバックグラウンドでオブジェクト形式に組み立てる必要があるという状況がよく発生します。最も一般的なのは enum 型です。このとき、Spring が提供する @initBinder アノテーションが大きな役割を果たします。

次の例では、JavaBean (ユーザー名、パスワード、メールアドレス、生年月日) を作成し、2 つのカスタム検証クラスを作成します。まず、ユーザー名とパスワードを検証します。メール、

Eclipse のデモの構造


Validator は 2 つのメソッドを備えたインターフェイスです。

ブール値をサポートします(Class< ;?>) ;クラッズ) :パラメータが正常に検証されたかどうかを確認するインスタンス クラス。
void validate(Object target, Errorserrors) :
support() メソッドが true を返す場合、ターゲット オブジェクトは正当です。使用されたフィールド名登録エラー メッセージ;
Uservalidator.java

 1 package com.concretepage.validators; 2 import org.springframework.stereotype.Component; 3 import org.springframework.validation.Errors; 4 import org.springframework.validation.ValidationUtils; 5 import org.springframework.validation.Validator; 6 import com.concretepage.User; 7 @Component 8 public class UserValidator implements Validator  { 9     @Override10     public boolean supports(Class<?> clazz) {11         return User.class.isAssignableFrom(clazz);12     }13     @Override14     public void validate(Object target, Errors errors) {15         User user = (User)target;16         ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "","Username is empty");17         ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "", "Password is empty");18         if (user.getName().length()<5) {19             errors.rejectValue("name","", "Username length is less than 5");20         }21     }22 }
ログイン後にコピー
UserValidator.java
EmailValidator.java
 1 package com.concretepage.validators; 2 import org.springframework.stereotype.Component; 3 import org.springframework.validation.Errors; 4 import org.springframework.validation.ValidationUtils; 5 import org.springframework.validation.Validator; 6 import com.concretepage.User; 7 @Component 8 public class EmailValidator implements Validator { 9     @Override10     public boolean supports(Class<?> clazz) {11         return User.class.isAssignableFrom(clazz);12     }13     @Override14     public void validate(Object target, Errors errors) {15         User user = (User)target;16         ValidationUtils.rejectIfEmptyOrWhitespace(errors, "email", "","Email is empty");17         if (!user.getEmail().contains("@")) {18             errors.rejectValue("email","", "Email is not valid.");19         }20     }21 }
ログイン後にコピー
EmailValidator . java
User.java
 1 package com.concretepage;
 2 import java.util.Date;
 3 public class User {
 4     private String name;
 5     private String password;
 6     private String email;
 7     private Date dob;
 8     public String getName() {
 9         return name;
10     }
11     public void setName(String name) {
12         this.name = name;
13     }
14     public String getPassword() {
15         return password;
16     }
17     public void setPassword(String password) {
18         this.password = password;
19     }
20     public String getEmail() {
21         return email;
22     }
23     public void setEmail(String email) {
24         this.email = email;
25     }
26     public Date getDob() {
27         return dob;
28     }
29     public void setDob(Date dob) {
30         this.dob = dob;
31     }
32 }
ログイン後にコピー
User.java
MyWorldController
 1 package com.concretepage; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4  5 import javax.validation.Valid; 6  7 import org.springframework.beans.factory.annotation.Autowired; 8 import org.springframework.beans.propertyeditors.CustomDateEditor; 9 import org.springframework.stereotype.Controller;10 import org.springframework.ui.ModelMap;11 import org.springframework.validation.BindingResult;12 import org.springframework.web.bind.WebDataBinder;13 import org.springframework.web.bind.annotation.InitBinder;14 import org.springframework.web.bind.annotation.ModelAttribute;15 import org.springframework.web.bind.annotation.RequestMapping;16 import org.springframework.web.bind.annotation.RequestMethod;17 import org.springframework.web.servlet.ModelAndView;18 19 import com.concretepage.validators.EmailValidator;20 import com.concretepage.validators.UserValidator;21 @Controller22 @RequestMapping("/myworld")23 public class MyWorldController {24     @Autowired25     private UserValidator userValidator;26     @Autowired27     private EmailValidator emailValidator;28 29     @RequestMapping(value="signup", method = RequestMethod.GET)30     public ModelAndView user(){31         return new ModelAndView("user","user",new User());32     }33     @InitBinder34     public void dataBinding(WebDataBinder binder) {35         binder.addValidators(userValidator, emailValidator);36         SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");37         dateFormat.setLenient(false);38         binder.registerCustomEditor(Date.class, "dob", new CustomDateEditor(dateFormat, true));39     }40     41     @RequestMapping(value="save", method = RequestMethod.POST)42     public String createUser(@ModelAttribute("user") @Valid User user,BindingResult result, ModelMap model) {43         if(result.hasErrors()) {44             return "user";45         }46         System.out.println("Name:"+ user.getName());47         System.out.println("Email:"+ user.getEmail());48         System.out.println("Date of Birth:"+ user.getDob());49         model.addAttribute("msg", "Welcome to My World!");50         return "success";51     }    
52 }
ログイン後にコピー
MyWorldController
ページフォーム
  <form:form action="save" method="post" commandName="user"><tr>  <td>User Name:</td> <td><form:input  path="name"/> </td> 
          <td> <form:errors path="name" cssStyle="color: red;"/></td> </tr><tr> <td> Password :</td> <td><form:input path="password"/> </td> 
         <td> <form:errors path="password" cssStyle="color: red;"/> </td> </tr><tr> <td>  Email :</td> <td><form:input path="email"/> </td> 
         <td> <form:errors path="email" cssStyle="color: red;"/> </td> </tr><tr> <td>  Date of Birth :</td> <td><form:input path="dob"/> </td> 
         <td> <form:errors path="dob" cssStyle="color: red;"/> </td> </tr>         <tr> <td colspan=3>   <input type="submit"> </td>
  </form:form>
ログイン後にコピー

 

以上がSpring で WebDataBinder を使用するにはどうすればよいですか?の詳細内容です。詳細については、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)

Spring Boot と OpenAI の出会いによる新しいプログラミング パラダイム Spring Boot と OpenAI の出会いによる新しいプログラミング パラダイム Feb 01, 2024 pm 09:18 PM

2023年、AI技術が注目を集め、プログラミング分野を中心にさまざまな業界に大きな影響を与えています。 AI テクノロジーの重要性に対する人々の認識はますます高まっており、Spring コミュニティも例外ではありません。 GenAI (汎用人工知能) テクノロジーの継続的な進歩に伴い、AI 機能を備えたアプリケーションの作成を簡素化することが重要かつ緊急になっています。このような背景から、AI 機能アプリケーションの開発プロセスを簡素化し、シンプルかつ直観的にし、不必要な複雑さを回避することを目的とした「SpringAI」が登場しました。 「SpringAI」により、開発者はAI機能を搭載したアプリケーションをより簡単に構築でき、使いやすく、操作しやすくなります。

Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Spring Boot と Spring AI を使用して生成人工知能アプリケーションを構築する Apr 28, 2024 am 11:46 AM

Spring+AI は業界リーダーとして、強力で柔軟な API と高度な機能を通じてさまざまな業界に最先端のソリューションを提供します。このトピックでは、さまざまな分野での Spring+AI の応用例を詳しく掘り下げ、Spring+AI がどのように特定のニーズを満たし、目標を達成し、これらの教訓をより広範囲のアプリケーションに拡張するかを示します。このトピックが Spring+AI の無限の可能性をより深く理解し、活用するきっかけになれば幸いです。 Spring フレームワークはソフトウェア開発の分野で 20 年以上の歴史があり、Spring Boot 1.0 バージョンがリリースされてから 10 年が経過しました。今、その春に異論を唱える人はいない

Springプログラマティックトランザクションの実装方法は何ですか? Springプログラマティックトランザクションの実装方法は何ですか? Jan 08, 2024 am 10:23 AM

Spring プログラムによるトランザクションを実装する方法: 1. TransactionTemplate を使用する; 2. TransactionCallback および TransactionCallbackWithoutResult を使用する; 3. Transactional アノテーションを使用する; 4. TransactionTemplate を @Transactional と組み合わせて使用​​する; 5. トランザクション マネージャーをカスタマイズする。

Spring でトランザクション分離レベルを設定する方法 Spring でトランザクション分離レベルを設定する方法 Jan 26, 2024 pm 05:38 PM

Spring でトランザクション分離レベルを設定する方法: 1. @Transactional アノテーションを使用します; 2. Spring 構成ファイルに設定します; 3. PlatformTransactionManager を使用します; 4. Java 構成クラスに設定します。詳細な導入方法: 1. @Transactional アノテーションを使用し、トランザクション管理が必要なクラスまたはメソッドに @Transactional アノテーションを追加し、属性に分離レベルを設定します。 2. Spring の設定ファイルなどで

コックピット Web UI から管理アクセスを有効にする方法 コックピット Web UI から管理アクセスを有効にする方法 Mar 20, 2024 pm 06:56 PM

Cockpit は、Linux サーバー用の Web ベースのグラフィカル インターフェイスです。これは主に、初心者/熟練ユーザーにとって Linux サーバーの管理を容易にすることを目的としています。この記事では、Cockpit アクセス モードと、CockpitWebUI から Cockpit への管理アクセスを切り替える方法について説明します。コンテンツ トピック: コックピット エントリ モード 現在のコックピット アクセス モードの確認 CockpitWebUI からコックピットへの管理アクセスを有効にする CockpitWebUI からコックピットへの管理アクセスを無効にする まとめ コックピット エントリ モード コックピットには 2 つのアクセス モードがあります。 制限付きアクセス: これは、コックピット アクセス モードのデフォルトです。このアクセス モードでは、コックピットから Web ユーザーにアクセスできません。

Spring アノテーションの公開: 一般的なアノテーションの分析 Spring アノテーションの公開: 一般的なアノテーションの分析 Dec 30, 2023 am 11:28 AM

Spring は、Java 開発を簡素化し、強化するための多くのアノテーションを提供するオープンソース フレームワークです。この記事では、一般的に使用される Spring アノテーションについて詳しく説明し、具体的なコード例を示します。 @Autowired: Autowired @Autowired アノテーションを使用して、Spring コンテナーに Bean を自動的に接続できます。依存関係が必要な場合に @Autowired アノテーションを使用すると、Spring はコンテナー内で一致する Bean を見つけて自動的に注入します。サンプルコードは次のとおりです。

SpringでのBean取得方法を詳しく解説 SpringでのBean取得方法を詳しく解説 Dec 30, 2023 am 08:49 AM

SpringのBean取得方法を詳しく解説 Springフレームワークにおいて、Beanの取得は非常に重要な部分である。アプリケーションでは、多くの場合、依存関係の注入を使用したり、Bean のインスタンスを動的に取得したりする必要があります。この記事では、Spring で Bean を取得する方法と具体的なコード例を詳しく紹介します。 @Component アノテーションを介して Bean@Component アノテーションを取得することは、Spring フレームワークで一般的に使用されるアノテーションの 1 つです。これを行うには、クラスに @Compone を追加します。

ウェブってどういう意味ですか ウェブってどういう意味ですか Jan 09, 2024 pm 04:50 PM

Web は、ワールド ワイド ウェブとしても知られるグローバル ワイド エリア ネットワークであり、インターネットのアプリケーション形式です。 Web はハイパーテキストとハイパーメディアに基づいた情報システムであり、ユーザーはハイパーリンクを通じて異なる Web ページ間を移動することにより、情報を閲覧したり入手したりすることができます。 Web の基礎はインターネットであり、統一および標準化されたプロトコルと言語を使用して、異なるコンピューター間でのデータ交換と情報共有を可能にします。

See all articles