今日はかなりしょうもないネタです(^^;一緒に開発してるメンバが発見して面白かったのでもらいました。否、仕様としてどうするか悩むので実際面白くはないのですが…。
PrimeFacesのCalendarでは、以下のように日付が選択できます。
カレンダーで日付を選びます
テキストに反映されます
至極ふつーです。
で、日付を手入力で「2013年13月19日」とかにして、ボタンイベントとかで反映します。
13月ってなんじゃい!!!バリデーションエラーや!
と思ってたんですが、結果は…
どーん
2014年1月19日
ある意味ちゃんと計算してくれてる(^^;繰り上げて
他に45日とか入れても正しく計算して月と日を表示したり…。
自分の使い方が微妙なのか?と以下PrimeFacesのShowcaseでも確認しましたが、同じでした。実際触ってみたい方は以下よりどうぞ(^^;
PrimeFacesのCalendarコンポShowcase
テキストに日付を入れて
submitボタン押すとダイアログがでます
ダイアログ上に変換された日付がでてます(^^)
いいじゃんいいじゃんー、って思うのですが、これが業務系のシステムだと考え方が色々あって仕様として微妙なケースも。。。
- 計算されるんで便利ですよねー、とか言ってみる
→入れた人が気づかずに意図したのと違う日にちになって危ないだろ!と言われる
- いっそ読み取り専用にしてカレンダーからしか選べないようにしましょうか
→直接打つ派が不便だよ!と言われる
- じゃあどうしたら…?
→バリデーションでエラーにしなさいな!!
今作ってるモノは多言語対応なので、バリデーションがyyyy/MM/ddとも限らず、ちょっと手間なので、なるべくコンポーネントの純粋な動きを採用したいですが悩ましい所です。
これってPrimeFacesっていうよりjQueryの挙動なのかな。
業務システムってむずいです。