CDI1.0今日はJSF2.0での基本的な画面遷移方法を書いていきます。3.1.2【内容】JSF2.0ではMVCで言うところのコントローラは全てManagedBeanというクラスで行います。ManagedBeanはPOJOで作成します。アクセサメソッドは省略}画面から呼び出されるメソッド名は自由につけることができます。戻り値は型をStringに、値を画面の遷移先を指定します。javax.faces.bean.ManagedBeanアノテーションを使用するとJSF上で自動的に管理してくれるようになります。name属性にはXHTML上で試用したい場合の名前を指定します。何もしていない場合はクラス名(先頭は小文字)が自動的に設定されます。javax.faces.bean.RequestScopedアノテーションでManagedBeanのスコープをリクエストに指定しています。そのほかにはApplicationScoped、SessionScoped、ViewScopedがあります。(この辺はまた別にまとめたいですね)続いて画面のほうです。遷移元画面は↓のようにします。配置場所はWebコンテキストのルートディレクトリ配下にします。</f:view></html>まずはJSFでレンダリングする箇所をタグで囲います。(なくても動いたような気がしますが、きっちり書きましょう)タグにはタグの内容を、タグにはタグの内容を書きます。サブミットする箇所はタグで囲います。このページの入力項目ではとタグを使用しています。value属性には対応するManagedBeanのプロパティをEL式で指定します。ユーザIDとなっている箇所は「#{indexPage.userId}」と指定しています。先ほど定義したManagedBeanのIndexPageImplクラスのuserIdに紐付けられます。EL式の書き方としては「#{(ManagedBean名).(プロパティ名)}になります。ManagedBean名はManagedBeanアノテーションで指定したvalue属性の値になります。指定していない場合は自動的に設定された値になります。サブミットするボタンはタグを使用します。action属性に実行したいManagedBeanのメソッドを指定します。こちらもEL式で指定し、「#{(ManagedBean名).(メソッド名)」という形式になります。続いて遷移先画面です。遷移先の画面は↓のようになります。今回、ファイル名は「resultPage.xhtml」とします。配置場所は「index.html」と同じです。</f:view></html>先ほどとあまり変わりはありません。出力項目として変更しただけです。以上の三つのファイルを作成し、Webブラウザでindex.htmlにアクセスします。すると↓のような画面が表示されます。ユーザ名とパスワードに「test」と入力してログインボタンをクリックします。すると↓のような画面が表示されます。index.xhtmlで入力した内容がresultPage.xhtmlに表示されています。JSFの基本的な動きは以上になります。JSFで使えるタグは↓のドキュメントを参考にしてください。http://docs.oracle.com/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/pdldocs/facelets/index.html番外編。ManagedBeanをCDIで管理する場合。各プロパティ、メソッドは先ほどと同じ}ManagedBeanアノテーションではなく、javax.inject.Namedアノテーションを使用します。value属性はManagedBeanアノテーションと同じです。RequestScopedアノテーションはjavax.faces.bean.RequestScopedアノテーションではなく、javax.enterprise.context.RequestScopedアノテーションを使用します。これで、JSFだけの管理と同様に動きます。id:ryoasaiさんの↓の記事を参考にさせていただきました。今回はCDIによる連携です。今回はロックについてです。今回は値の自動生成についてです。月別アーカイブはてなブログをはじめよう!gloryofさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。