Oracle Containers for J2EE JSPタグ・ライブラリおよびユーティリティ・リファレンス 10g(10.1.3.1.0) B31854-01 |
|
注意 Oracle JSP Markup Language(JML)タグ・ライブラリは、Oracle Application Server 10gリリース3(10.1.3)から正式にサポート外になりました。 開発者は、JavaServer Pages標準タグ・ライブラリ(JSTL)提供のタグを使用する必要があります。JSTLでは、標準化された実装にJMLと類似した機能がカプセル化されています。JSTLの詳細は、第2章「JavaServer Pages標準タグ・ライブラリのサポート」を参照してください。 |
この付録では、Oracle JSP Markup Language(JML)拡張型、すなわちJSPページで使用されるJavaのプリミティブ型のラップのために使用できるJavaBeanクラスについて説明します。
この付録には、次の項目が含まれます。
JSPページでは、スカラー値の表現をコアとなるJavaの型に依存しています。ただし、次の型カテゴリは、いずれもJSPページでの使用に適していません。
int
、float
およびdouble
など)これらの型の値には、スコープを指定できません。つまり、JSPのスコープ・オブジェクト(page
、request
、session
またはapplication
スコープ)に格納できません。これは、スコープ・オブジェクトに格納できるのはオブジェクトのみであるためです。
java.lang
パッケージにあるラッパー・クラス(Integer
、Float
およびDouble
など)これらの型の値はオブジェクトであるため、理論上ではJSPスコープ・オブジェクトに格納できます。ただし、ラッパー・クラスはJavaBeanモデルに準拠しておらず、引数が0(ゼロ)のコンストラクタを提供していないため、jsp:useBean
操作でこの型を宣言できません。
さらに、ラッパー・クラスのインスタンスは不変です。値を変更するには、インスタンスを新たに作成して、適切に割り当てる必要があります。
これらの制限事項を回避するために、OC4Jでは、最も一般的なJavaの型に対してラッパーとして動作する、次のJavaBeanクラスをoracle.jsp.jml
パッケージに用意しています。
これらのクラスには、それぞれ1つの属性value
があり、値の取得、各種フォーマットへの入力値の設定、その値が複数のフォーマットのいずれかに指定した値と等しいかどうかのテスト、およびその値の文字列への変換などを行うメソッドが組み込まれています。
あるいは、getValue()
メソッドおよびsetValue()
メソッドを使用せずに、他のBeanのように、jsp:getProperty
タグおよびjsp:setProperty
タグを使用することもできます。
次の例では、application
スコープを持つcount
と呼ばれるJmlNumber
インスタンスを作成します。
<jsp:useBean id="count" class="oracle.jsp.jml.JmlNumber" scope="application" />
値が他の場所で設定済の場合は、その値に次のようにしてアクセスできます。
<h3> The current count is <%=count.getValue() %> </h3>
次の例では、request
スコープを持つmaxSize
と呼ばれるJmlNumber
インスタンスを作成し、そのインスタンスをsetProperty
を使用して設定します。
<jsp:useBean id="maxSize" class="oracle.jsp.jml.JmlNumber" scope="request" > <jsp:setProperty name="maxSize" property="value" value="<%= 25 %>" /> </jsp:useBean>
この項では、4つの拡張型(JmlBoolean
、JmlNumber
、JmlFPNumber
およびJmlString
)のパブリック・メソッドについて説明し、例を示します。
JmlBoolean
オブジェクトは、Java boolean
値を表します。
getValue()
メソッドとsetValue()
メソッドは、Beanのvalue
プロパティをJava boolean
値として取得または設定します。
setTypedValue()
メソッドには複数のシグネチャがあり、value
プロパティを文字列(「true
」や「false
」など)、java.lang.Boolean
値、Java boolean
値またはJmlBoolean
値から設定できます。文字列の入力については、java.lang.Boolean
クラスのvalueOf()
メソッドと同じルールに従って、文字列の変換が実行されます。
void setTypedValue(String)
void setTypedValue(Boolean)
void setTypedValue(boolean)
void setTypedValue(JmlBoolean)
equals()
メソッドは、value
プロパティが、指定したJava boolean
値と等しいかどうかをテストします。
typedEquals()
メソッドには複数のシグネチャがあり、value
プロパティの値が、指定した文字列(「true
」や「false
」など)、java.lang.Boolean
値またはJmlBoolean
値と等しいかどうかをテストします。
toString()
メソッドは、value
プロパティをjava.lang.String
値(「true
」または「false
」のいずれか)として戻します。
JmlNumber
オブジェクトは、Java int
値に等しい32ビットの数値を表します。
getValue()
メソッドとsetValue()
メソッドは、Beanのvalue
プロパティをJava int
値として取得または設定します。
setTypedValue()
メソッドには複数のシグネチャがあり、value
プロパティを文字列、java.lang.Integer
値、Java int
値またはJmlNumber
値から設定できます。文字列の入力については、java.lang.Integer
クラスのdecode()
メソッドと同じルールに従って、文字列の変換が実行されます。
void setTypedValue(String)
void setTypedValue(Integer)
void setTypedValue(int)
void setTypedValue(JmlNumber)
equals()
メソッドは、value
プロパティが、指定したJava int
値と等しいかどうかをテストします。
typedEquals()
メソッドには複数のシグネチャがあり、value
プロパティの値が、指定した文字列(「1234
」など)、java.lang.Integer
値またはJmlNumber
値と等しいかどうかをテストします。
toString()
メソッドは、value
プロパティを等価のjava.lang.String
値(「1234
」など)として戻します。このメソッドの機能は、java.lang.Integer
クラスのtoString()
メソッドの機能と同じです。
JmlFPNumber
オブジェクトは、Java double
値に等しい64ビットの浮動小数点の数値を表します。
getValue()
メソッドとsetValue()
メソッドは、Beanのvalue
プロパティをJava double
値として取得または設定します。
setTypedValue()
メソッドには複数のシグネチャがあり、value
プロパティを文字列(「3.57
」など)、java.lang.Integer
値、Java int
値、java.lang.Float
値、Java float
値、java.lang.Double
値、Java double
値またはJmlFPNumber
値から設定できます。文字列の入力については、java.lang.Double
クラスのvalueOf()
メソッドと同じルールに従って、文字列の変換が実行されます。
void setTypedValue(String)
void setTypedValue(Integer)
void setTypedValue(int)
void setTypedValue(Float)
void setTypedValue(float)
void setTypedValue(Double)
void setTypedValue(double)
void setTypedValue(JmlFPNumber)
equals()
メソッドは、value
プロパティが、指定したJava double
値と等しいかどうかをテストします。
setTypedValue()
メソッドには複数のシグネチャがあり、value
プロパティを文字列(「3.57
」など)、java.lang.Integer
値、Java int
値、java.lang.Float
値、Java float
値、java.lang.Double
値、Java double
値またはJmlFPNumber
値から設定できます。
boolean typedEquals(String)
boolean typedEquals(Integer)
boolean typedEquals(int)
boolean typedEquals(Float)
boolean typedEquals(float)
boolean typedEquals(Double)
boolean typedEquals(JmlFPNumber)
toString()
メソッドは、value
プロパティをjava.lang.String
値(「3.57
」など)として戻します。このメソッドの機能は、java.lang.Double
クラスのtoString()
メソッドの機能と同じです。
JmlString
オブジェクトは、java.lang.String
値を表します。
getValue()
メソッドとsetValue()
メソッドは、Beanのvalue
プロパティをjava.lang.String
値として取得または設定します。setValue()
コール内の入力がnullの場合、value
プロパティは、空(0(ゼロ)長)の文字列に設定されます。
toString()
メソッドの機能は、getValue()
メソッドの機能と同じです。
setTypedValue()
メソッドは、value
プロパティを、指定したJmlString
値に従って設定します。JmlString
値がnull
の場合、value
プロパティは、空(0(ゼロ)長)の文字列に設定されます。
isEmpty()
メソッドは、value
プロパティが空(0(ゼロ)長)の文字列かどうかをテストします。
equals()
メソッドには2つのシグネチャがあり、value
プロパティが、指定したjava.lang.String
値またはJmlString
値と等しいかどうかをテストします。
この例では、スコープで単純な型を管理するJML拡張型JavaBeansの使用例を示します。このページでは、4つのセッション・オブジェクト(各JML型に対して1つ)を宣言します。また、このページは開発者が各型に値を入力できるフォームを提供しています。新しい値が入力されたフォームには、新しい値と以前設定された値の両方が表示されます。この出力の生成中に、ページはセッション・オブジェクトを新しいフォーム値によって更新します。
<jsp:useBean id = "submitCount" class = "oracle.jsp.jml.JmlNumber" scope = "session" />
<jsp:useBean id = "bool" class = "oracle.jsp.jml.JmlBoolean" scope = "session" >
<jsp:setProperty name = "bool" property = "value" param = "fBoolean" />
</jsp:useBean>
<jsp:useBean id = "num" class = "oracle.jsp.jml.JmlNumber" scope = "session" >
<jsp:setProperty name = "num" property = "value" param = "fNumber" />
</jsp:useBean>
<jsp:useBean id = "fpnum" class = "oracle.jsp.jml.JmlFPNumber" scope = "session" >
<jsp:setProperty name = "fpnum" property = "value" param = "fFPNumber" />
</jsp:useBean>
<jsp:useBean id = "str" class = "oracle.jsp.jml.JmlString" scope = "session" >
<jsp:setProperty name = "str" property = "value" param = "fString" />
</jsp:useBean>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
<META NAME="GENERATOR" Content="Visual Page 1.1 for Windows">
<TITLE>Extended Datatypes Sample</TITLE>
</HEAD>
<BODY BACKGROUND="images/bg.gif" BGCOLOR="#FFFFFF">
<% if (submitCount.getValue() > 1) { %>
<h3> Last submitted values </h3>
<ul>
<li> bool: <%= bool.getValue() %>
<li> num: <%= num.getValue() %>
<li> fpnum: <%= fpnum.getValue() %>
<li> string: <%= str.getValue() %>
</ul>
<% }
if (submitCount.getValue() > 0) { %>
<jsp:setProperty name = "bool" property = "value" param = "fBoolean" />
<jsp:setProperty name = "num" property = "value" param = "fNumber" />
<jsp:setProperty name = "fpnum" property = "value" param = "fFPNumber" />
<jsp:setProperty name = "str" property = "value" param = "fString" />
<h3> New submitted values </h3>
<ul>
<li> bool: <jsp:getProperty name="bool" property="value" />
<li> num: <jsp:getProperty name="num" property="value" />
<li> fpnum: <jsp:getProperty name="fpnum" property="value" />
<li> string: <jsp:getProperty name="str" property="value" />
</ul>
<% } %>
<jsp:setProperty name = "submitCount" property = "value" value = "<%= submitCount.getValue() + 1 %>" />
<FORM ACTION="index.jsp" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded">
<P> <pre>
boolean test: <INPUT TYPE="text" NAME="fBoolean" VALUE="<%= bool.getValue() %>" >
number test: <INPUT TYPE="text" NAME="fNumber" VALUE="<%= num.getValue() %>" >
fpnumber test: <INPUT TYPE="text" NAME="fFPNumber" VALUE="<%= fpnum.getValue() %>" >
string test: <INPUT TYPE="text" NAME="fString" VALUE= "<%= str.getValue() %>" >
</pre>
<P> <INPUT TYPE="submit">
</FORM>
</BODY>
</HTML>
|
![]() Copyright © 2002, 2006 Oracle Corporation. All Rights Reserved. |
|