JSP では標準で使えるアクションタグがあります。
アクションタグを使うことで Java のコードを減らして可読性、保守性を高める。
jsp:useBean
JSP ページ内で JavaBean クラスのインスタンスを取得または生成する。
<構文>
<jsp:useBean id="obj" class="sample.SCWCDBean" scope="request />
obj という SCWCD のオブジェクトを JSP ページで利用できる。
<useBean の属性>
id オブジェクト名
class オブジェクトのクラス
type オブジェクトの型(インターフェース使用可)
beanName オブジェクトの名前
scope スコープ(デフォルト page)
<scope について>
page 現在のページ
request 現在のページ + include 先 + forward 先
session セッション領域
application アプリケーション全域
<ルール>
・class 属性を使うとスコープにそのクラスのオブジェクトが見つかるとそれを利用し、見つからないと新しく作成する。
・type 属性を使うとスコープにそのクラスのオブジェクト、またはそのインターフェース型にキャストできるオブジェクトを見つけてその「型」で利用します。
見つからない場合はインスタンスを作成せず、InstantiationException が投げられる。
・type 属性と class 属性を同時に使うと オブジェクトが type 属性の型にキャストされる。
・beanName 属性は type 属性との組み合わせのみで使用できる。
・beanName 属性はオブジェクトを作成する際に class 属性の代わりとなるので class 属性と組合すことはできない。
<サンプル>
index.jsp
<%@ page contentType="text/html;charset=Shift_JIS"%>
<jsp:useBean id="obj" class="beans.SCWCDBean" scope="session" />
<html>
<body>
<a href="/SCWCD/usebeanSample.jsp">usebeanSample.jsp</a><br />
</body>
</html>
________
usebeanSample.jsp
<%@ page contentType="text/html;charset=Shift_JIS"%>
<jsp:useBean id="obj" type="beans.SJCPCertified" scope="session" />
<html>
<body>
SCJP 獲得 : <%=obj.status()%>
</body>
</html>
________
SJCPCertified.java
package beans;
public interface SJCPCertified {
boolean SJCPCERTIFIED = true;
boolean status();
}
________
SCWCDBean.java
package beans;
import java.io.Serializable;
@SuppressWarnings("serial")
public class SCWCDBean implements Serializable, SJCPCertified {
public SCWCDBean() {}
private String name;
private int score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public boolean status() {
return SJCPCERTIFIED;
}
}
<出力結果>
SCJP 獲得 : true
usebeanSample.jsp で SJCPCertified 型のオブジェクトが獲得されている。
0 件のコメント:
コメントを投稿