JSPでJavaBeansを使う方法を徹底解説!useBeanでBeanを読み込み、setProperty/getPropertyでプロパティを更新する実例
jsp:useBeanアクションとは
jsp:useBeanアクションは非常に汎用性の高い機能です。まずid属性とscope属性をもとに既存のオブジェクトを検索し、該当するオブジェクトが見つからない場合は、指定されたオブジェクトを新しく作成します。
Beanを読み込む最もシンプルな記述方法は以下の通りです。
<jsp:useBean id = "name" class = "package.class" />
Beanクラスがロードされたら、jsp:setPropertyおよびjsp:getPropertyアクションを使って、Beanのプロパティを変更したり取得したりできます。
useBeanアクションに関連する主な属性は以下の表の通りです。
| 番号 | 属性と説明 |
|---|---|
| 1 | class Beanの完全なパッケージ名を指定します。 |
| 2 | type オブジェクトを参照する変数の型を指定します。 |
| 3 | beanName java.beans.Beansクラスのinstantiate()メソッドで指定される形式で、Beanの名前を指定します。 |
ここからは、具体的なサンプルコードを紹介する前に、jsp:setPropertyアクションとjsp:getPropertyアクションについて詳しく見ていきましょう。
<jsp:setProperty>アクション
setPropertyアクションは、Beanのプロパティに値を設定します。このアクションを使用する前に、対象となるBeanがあらかじめ定義されている必要があります。setPropertyアクションには、主に2つの使い方があります。
1つ目は、jsp:useBean要素の後ろ(外側)でjsp:setPropertyを使用する方法です。
<jsp:useBean id = "myName" ... />
...
<jsp:setProperty name = "myName" property = "someProperty" .../>
この書き方の場合、新しいBeanがインスタンス化されたか、既存のBeanが見つかったかに関わらず、jsp:setPropertyは必ず実行されます。
2つ目は、jsp:useBean要素のボディ内でjsp:setPropertyを使用する方法です。
<jsp:useBean id = "myName" ... >
...
<jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>
この書き方の場合、jsp:setPropertyは新しいオブジェクトがインスタンス化されたときにのみ実行され、既存のオブジェクトが見つかった場合には実行されません。
setPropertyアクションに関連する属性は以下の表の通りです。
| 番号 | 属性と説明 |
|---|---|
| 1 | name プロパティを設定する対象のBeanを指定します。事前に定義されている必要があります。 |
| 2 | property 設定したいプロパティを指定します。「*」を指定すると、Beanのプロパティ名と一致するすべてのリクエストパラメータが、対応するセッターメソッドに渡されます。 |
| 3 | value 指定したプロパティに代入する値です。パラメータの値がnullの場合や、パラメータ自体が存在しない場合は、setPropertyアクションは無視されます。 |
| 4 | param プロパティが値を受け取るリクエストパラメータの名前を指定します。valueとparamを同時に使うことはできませんが、どちらも使わないこと自体は許容されています。 |
<jsp:getProperty>アクション
getPropertyアクションは、指定されたプロパティの値を取得し、文字列に変換したうえで出力に挿入します。
getPropertyアクションには2つの属性があり、どちらも必須です。構文は以下の通りです。
<jsp:useBean id = "myName" ... />
...
<jsp:getProperty name = "myName" property = "someProperty" .../>
getPropertyアクションの必須属性は以下の表の通りです。
| 番号 | 属性と説明 |
|---|---|
| 1 | name 値を取得するプロパティを持つBeanの名前です。事前に定義されている必要があります。 |
| 2 | property 取得対象となるBeanプロパティの名前を指定します。 |
実例
それでは、例の中で実際に使用するテスト用Beanを定義してみましょう。
/* ファイル名: TestBean.java */
package action;
public class TestBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
上記のコードをコンパイルしてTestBean.classファイルを生成し、そのファイルをC:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\actionフォルダにコピーしてください。また、CLASSPATH環境変数にもこのフォルダへのパスを設定しておく必要があります。
続いて、main.jspファイルに以下のコードを記述します。これによりBeanがロードされ、単純なStringパラメータの設定と取得が行われます。
<html>
<head>
<title>JSPでJavaBeansを使う</title>
</head>
<body>
<center>
<h2>JSPでJavaBeansを使う</h2>
<jsp:useBean id = "test" class = "action.TestBean" />
<jsp:setProperty name = "test" property = "message"
value = "Hello JSP..." />
<p>メッセージを取得しました....</p>
<jsp:getProperty name = "test" property = "message" />
</center>
</body>
</html>
それではmain.jspにアクセスしてみましょう。ブラウザには以下のように表示されます。
JSPでJavaBeansを使う
メッセージを取得しました....
Hello JSP...
-
AirDropの使い方を徹底解説!MacとiPhone間でファイルを簡単に共有する方法
iPhoneとMacの間でファイルをやり取りする機会は、頻繁でなくても必ず一度は訪れるものです。AppleがAirDropをリリースする前は、写真やドキュメントを共有するのが本当に頭痛の種でした。動作が不安定なサードパーティ製アプリに頼ったり、一定サイズを超えるファイルをメールで送れなかったりと、決して快適な体験とは言えませんでした。AirDropの登場により、Appleはこの一連のプロセスを劇的にシンプルにしました。まだAirDropを使ったことがないなら、その手軽さをぜひ一度体験してみてください。この記事では、AirDropの使い方について知っておくべきポイントをすべて解説します。AirD
-
Windows 8/10でWindows Updateトラブルシューティングツールを使ってアップデートエラーを解決する方法
MicrosoftはWindows 7の登場とともに、Windows OS向けのOTA(Over The Air)アップデート機能を導入しました。これにより、システムの問題が発生した際にも、アップデートを配信することで迅速に対応できるようになりました。しかし、Windowsユーザーであれば、最新ビルドへアップデートする際にさまざまなエラーに遭遇することがあるかもしれません。こうした問題に対処するため、Microsoftは「Windows Updateトラブルシューティングツール(Fixit)」という便利なツールを提供しています。このツールは、Windows内部のサービス設定を自動的にリセットす