skillup

技術ブログ

Java

JSFを使ったAjax

投稿日:

現在開発中のサブプロジェクトでJSFからAjaxを使う機会があったので紹介します。

仕様自体は非常にシンプルで下記の画面でプルダウンが変更になったときにDBを見に行って画面の値を更新するような仕様です。

hoge

これをAjaxで実装します。

JSF側

ajaxタグの説明

<f:ajax event=”change” execute=”@this” listener=”#{menuBean.setExpenseData() }” render=”fixedSalary”/>

説明の必要はあまりないかもしれませんが

event・・読んで字のごとくイベントです。今回はプルダウンが変わった時なのでそのままchangeです。

execute・・サーバー側に送るデータをここに記述します。自分だけの場合は@this、すべて送る場合は@all,formの中だけを送る@formなどあるようです。ディフォルトでは@thisです。

listener・・イベント発生時に実行させるメソッドです。戻り値はなしのものにすること

render・・これがはまりました。実はAjaxで送ってManagedBeanの値を更新してもJSF側の画面は変わりません。後ほど紹介する書籍にばっちりかいてありましたが、JSFのライフサイクルの中でレンダリングは行われないようです。更新したい場合はコンポーネントのidをここで記述する必要があります。

ManagedBean側

該当の処理部分だけ書きます。

こちらは特に説明はいらないかもしれません。あえていうと画面の遷移がないので@ViewScopedにしたほうが、処理が軽いです。

@RequestScopedだとオブジェクトの生成・廃棄が起こります。

今回、参考になったのは書籍ですね。

わかりやすいJavaEEウェブシステム入門」この9章がそのまま役に立ちました。

 

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

JPAを使用する  JavaSE編

現在の開発ではデータベースへの接続ではJPAを使っています。このJPAがなかなか曲者でいろいろと詰まることがありましたので解説させていただきます。 Contents1 JPAとは?1.1 メリット1. …

no image

JPAのdetach

このブログで何回か書いてきたんですが、JPAを使うときにpersisit=insert,merge=updateではないです。 参考リンク JPAまとめ JPAでのデータベースとの同期 実はJPAでf …

no image

JAXRSによるRESTAPI作成方法

業務でJavaによりWEBAPI(Rsetful API)を作成する機会ががあったのでちょっとメモしておきます。 Contents1 RestAPIとは2 プログラムの作成方法について RestAPI …

no image

Messageプロパティの設置方法

JavaEEに限らず、エラーメッセージなどは通常、プログラムの中に書くのではなく、できればエラーメッセージファイルの中で管理するのが望ましいでしょう。 またJSF側の名称の表示なども直接xhtmlの中 …

no image

配列の初期化&代入+Mapから別Map作成

最近、業務ではコードの量が肥大化し、とにかく短く書くことを心がけてます。 まあ、短ければいいってもんでもないんですが・・・ Listにクラスを使いするときに↓みたいな書き方を紹介したんですが、 [cr …