プロトタイプの開発とはいえ、実際に実装してみると細かい所でつまづきます。
今日はバリデーションとその評価に関するつまづきです。画面コンポはPrimeFacesを使っています。
ある画面のいくつかの項目は必須入力で、required="true"としていますが、ログオフのCommandLinkや保存せずに前画面に戻るキャンセルボタンのCommandButtonなどを押下して「必須入力項目が入力されていません!」と怒られるのはアウトです。
必須入力を回避するには…と検索していたところ
http://stackoverflow.com/questions/11243652/how-to-invoke-a-command-button-without-validating-all-required-inputs
とありました。
PrimeFacesのcommandButtonやcommandLinkにある属性「immediate」をfalseにするとのこと。
実際に試してみると上手く動きました。
ドキュメントを読むと、フェーズを決めるためのものらしいです。JSFのライフサイクルのことでしょうか。
とりあえず動かしたけれど、もう少し調べて、内部的にどうなてちるのか理解する必要がありそうです。