Enviar búsqueda
Cargar
BeanValidation
•
Descargar como PPTX, PDF
•
0 recomendaciones
•
3,589 vistas
O
Oda Shinsuke
Seguir
バリバリー、検証は任せろー。やめてー 2013/12/28 忘年会駆動 #hogedriven
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 16
Descargar ahora
Recomendados
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
JustSystems Corporation
ユニットテスト初学者がKiwiFramework非同期テストで失敗した
ユニットテスト初学者がKiwiFramework非同期テストで失敗した
Yuichi Adachi
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
Shunji Konishi
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
JustSystems Corporation
最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug
JustSystems Corporation
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使う
Tatsumi Naganuma
Javaでのバリデーション 〜Bean Validation篇〜
Javaでのバリデーション 〜Bean Validation篇〜
eiryu
Recomendados
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
JustSystems Corporation
ユニットテスト初学者がKiwiFramework非同期テストで失敗した
ユニットテスト初学者がKiwiFramework非同期テストで失敗した
Yuichi Adachi
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
Shunji Konishi
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
JustSystems Corporation
最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug
JustSystems Corporation
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使う
Tatsumi Naganuma
Javaでのバリデーション 〜Bean Validation篇〜
Javaでのバリデーション 〜Bean Validation篇〜
eiryu
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
kunihikokaneko1
CodeIgniter入門
CodeIgniter入門
Sho A
Spock's world
Spock's world
Takuma Watabiki
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
Scala EE 7 Essentials
Scala EE 7 Essentials
tnoda
111008 silverlight square_datavalidation
111008 silverlight square_datavalidation
Takayoshi Tanaka
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
Ruby test double
Ruby test double
Naotoshi Seo
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
stomita
Wagby r7javadeveloperbasicguide
Wagby r7javadeveloperbasicguide
Yoshinori Nie
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Shinichi Hirauchi
SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
Oda Shinsuke
What's hyperscale
What's hyperscale
Oda Shinsuke
Dot net+sql server tips
Dot net+sql server tips
Oda Shinsuke
Sql server 2019 ざっくり紹介
Sql server 2019 ざっくり紹介
Oda Shinsuke
Spark on sql server?
Spark on sql server?
Oda Shinsuke
SQL Server のロック概要
SQL Server のロック概要
Oda Shinsuke
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
Linux + PHP でも SQL Server
Linux + PHP でも SQL Server
Oda Shinsuke
グラフデータベースの話し
グラフデータベースの話し
Oda Shinsuke
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
Oda Shinsuke
Más contenido relacionado
Similar a BeanValidation
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
kunihikokaneko1
CodeIgniter入門
CodeIgniter入門
Sho A
Spock's world
Spock's world
Takuma Watabiki
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
Scala EE 7 Essentials
Scala EE 7 Essentials
tnoda
111008 silverlight square_datavalidation
111008 silverlight square_datavalidation
Takayoshi Tanaka
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
Ruby test double
Ruby test double
Naotoshi Seo
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
stomita
Wagby r7javadeveloperbasicguide
Wagby r7javadeveloperbasicguide
Yoshinori Nie
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Shinichi Hirauchi
Similar a BeanValidation
(12)
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
CodeIgniter入門
CodeIgniter入門
Spock's world
Spock's world
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Scala EE 7 Essentials
Scala EE 7 Essentials
111008 silverlight square_datavalidation
111008 silverlight square_datavalidation
ClassLoader Leak Patterns
ClassLoader Leak Patterns
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Ruby test double
Ruby test double
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
Wagby r7javadeveloperbasicguide
Wagby r7javadeveloperbasicguide
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Más de Oda Shinsuke
SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
Oda Shinsuke
What's hyperscale
What's hyperscale
Oda Shinsuke
Dot net+sql server tips
Dot net+sql server tips
Oda Shinsuke
Sql server 2019 ざっくり紹介
Sql server 2019 ざっくり紹介
Oda Shinsuke
Spark on sql server?
Spark on sql server?
Oda Shinsuke
SQL Server のロック概要
SQL Server のロック概要
Oda Shinsuke
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
Linux + PHP でも SQL Server
Linux + PHP でも SQL Server
Oda Shinsuke
グラフデータベースの話し
グラフデータベースの話し
Oda Shinsuke
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
Oda Shinsuke
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
Oda Shinsuke
Transaction scopeまだダメ
Transaction scopeまだダメ
Oda Shinsuke
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
Oda Shinsuke
2016年を振り返って
2016年を振り返って
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
Ms build 触ってみよう
Ms build 触ってみよう
Oda Shinsuke
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Oda Shinsuke
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
Oda Shinsuke
Más de Oda Shinsuke
(20)
SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
What's hyperscale
What's hyperscale
Dot net+sql server tips
Dot net+sql server tips
Sql server 2019 ざっくり紹介
Sql server 2019 ざっくり紹介
Spark on sql server?
Spark on sql server?
SQL Server のロック概要
SQL Server のロック概要
Blazor 触ってみた
Blazor 触ってみた
Linux + PHP でも SQL Server
Linux + PHP でも SQL Server
グラフデータベースの話し
グラフデータベースの話し
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
Transaction scopeまだダメ
Transaction scopeまだダメ
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
2016年を振り返って
2016年を振り返って
Sql world とは
Sql world とは
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
Sql world とは
Sql world とは
Ms build 触ってみよう
Ms build 触ってみよう
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
Último
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Último
(8)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
BeanValidation
1.
2013/12/28 忘年会駆動 SQLWorld お
だ
2.
自己紹介 織田 信亮(おだ しんすけ) 大阪で開発者しています SQLWorld
の代表です http://odashinsuke.hatenablog.com/ Twitter:@shinsukeoda
3.
Bean Validation って? Java
Beans を アノテーションベースで検証する フィールド、メソッド(get~, is~) に指定 フィールドの値、メソッドの戻り値に対して検証 .NET だと System.ComponentModel.DataAnnotations が近い
4.
色んなのが標準で用意されてる @Null, @NotNull @AssertTrue, @AssertFalse @DecimalMax,
@DecimalMin, @Max, @Min @Digits @Size @Pattern …
5.
ネストしたオブジェクトは? 標準では検証しない @Valid 付けると、検証する class Bean
{ @NotNull(message="Nullだめ") // @Valid がないと、nest の中までは検証しない public Nest nest @NotNull(message="Nullだめ") @Size(min=1, message="要素は1個以上") @Valid // @Valid があるので、各要素に対しても検証を行う public List<Nest> details } class Nest { @NotNull(message="NullNG") public String name }
6.
検証エラーのメッセージ ValidationMessges.properties で書き換え可能 アノテーション指定時に直書きもOK class Bean
{ @NotNull(message="Nullだめ") @Size(min=1, message="{min} 以上") public String name @NotNull(message="{DateNotNull}") public Date entryDate @Digits(integer=3, fraction=1) public BigDecimal quantity }
7.
検証用のアノテーション追加 複数のアノテーションを束ねる アノテーションがまとまってスッキリ! 自前で Validator を実装することで、新しいアノテー ションを作成可能 だいたい何でも出来るはず
8.
検証を行う組み合わせを設定する 1つの Bean の中で検証を行うグループを指定する interface
SearchCondition{} interface SearchResult{} class GroupSample { @NotNull(groups=SearchCondition) @Size(min=1, groups=SearchCondition) public String orderNoFrom @NotNull(groups=SearchCondition) @Size(min=1, groups=SearchCondition) public String orderNoTo @NotNull(groups=SearchResult) @Size(min=1, groups=SearchResult) public List<String> results } validator.validate(new GroupSample) .length.is(0) validator.validate(new GroupSample , SearchCondition).length.is(2) validator.validate(new GroupSample , SearchResult).length.is(1) validator.validate(new GroupSample , SearchCondition, SearchResult ).length.is(2)
9.
Group の検証順序を設定する 検証を行う順序を決め、上位でエラーがあれば下位は行 わない interface First{} interface
Second{} @GroupSequence(#[Default, First, Second]) interface Seq {} class BeerOrder { @NotNull @Size(min=1, groups=First) public String name @Min(value=20, groups=Second) public int age } validator.validate(new BeerOrder , Seq).length.is(1) validator.validate(new BeerOrder => [ name="" ], Seq).length.is(1) validator.validate(new BeerOrder => [ name="aaa" ], Seq).length.is(1)
10.
1つの項目で同じ検証を違う値で行う コンテキストによって検証で使う値を変えたい 同じアノテーションは複数個設定出来ない List を使って解決 interface Japan{} interface
Other{} class BeerOrder2 { @Min.List(#[ @Min(value = 18, groups=Other), @Min(value = 20, groups=Japan) ]) public int age }
11.
今日の本題 JSF2 で Bean
Validation
12.
13.
動くけど… groups は 基本
Default だけっぽい 1個の form で複数ボタンの問題 このボタンの時は、検証したくない!例:行追加ボタンとか immediate=“true“ すると、値も飛んでかない このボタンの時は、この検証したくない! groups が Default 以外変更出来そうにないので、無理ー
14.
使える・・・・・・! 使えるが・・・ 使いやすいとは言っていない そのことを どうか諸君らも 思い出していただきたい つまり・・・・ 我々がその気になれば 使いやすくなるのは JavaEE10、JavaEE20 ということも 可能だろう・・・・・・・・・・というこ と・・・・!
15.
というわけで、自前でやる 資料作るガッツが足りない 間に合ったらコードで紹介
16.
まとめ
Descargar ahora