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

jenkinsのオートデプロイ

久々にJavaやりました。 Contents1 やりたいこと2 ハマりポイント2.1 Antでのjobの設定2.2 jenkinsでビルドできない2.3 jenkinsのオートデプロイ2.4 SSHで …

no image

Javaのarraycopy

最近あまりJava自体には触っていないですが、資格の勉強をコツコツとすすめていることもあり、新たな発見もあります。 8ヶ月ぐらいJava書いていますが、arraycopyというメソッドをはじめてしりま …

no image

JavaEEとは?

JavaEEのブログといいつつ、JavaEEについて全然書いていませんでした・・・ ちょっとJavaEEについて書かせていただきます。 Contents1 そもそもJavaとは?1.1 Javaの定義 …

no image

JPAでの算術関数の型&mavenコンパイルプラグイン

本日も小ネタなので2つ同時に扱います。 Contents1 JPAの算術関数2 mavenのコンパイル JPAの算術関数 JPAでは以前、MySQLなどと同じように算術関数を使えると書きました。 参考 …

no image

mavenのゴール

以前、pomに依存ライブラリを記述しましたが、コンパイルのときのみクラスパスが通っており、実行時にはクラスパスが通っていない、NoClassDefFoundErrorがでたことがありました。 気づいた …