新しい属性を(toScope
プロパティを指定する場合はそのスコープ内に)作成し、対応するスクリプト変数を作成します。両方とも、id
属性の値により名前を指定します。この新しい属性(およびスクリプト変数)に設定する値は、次のアプローチのいずれか1つを使用して指定します(複数のアプローチを使用すると、JspExceptionがスローされます)。
name
属性(およびオプションのproperty
属性とscope
属性)を指定: 作成される属性とスクリプト変数は、Javaプリミティブ型でないかぎり、取得されるJavaBeansプロパティの型になります。プリミティブ型の場合は、適切なラッパー・クラスにラップされます(すなわち、intはjava.lang.Integerでラップされます)。
value
属性を指定: 作成される属性とスクリプト変数は、この属性の値に設定されたjava.lang.String
型になります。
- ネストされた本体コンテンツを指定: 作成される属性とスクリプト変数は、ネストされた本体コンテンツの値に設定された
java.lang.String
型になります。
指定したBeanプロパティの取得中に問題が発生した場合は、リクエスト時例外がスローされます。
<bean:define>
タグには、次のように<jsp:useBean>
タグと異なる点がいくつかあります。
- 指定した識別子で無条件にBeanを作成(または置換)します。
- 別のBean(ネストされたプロパティ名または索引付きプロパティ名、あるいはその両方で参照されるプロパティを含むBean)のプロパティgetterにより返される値を使用してBeanを作成できます。
value
属性で指定したリテラル文字列(またはランタイム式の結果)を含むBeanを作成できます。
- (
<jsp:setProperty>
タグなどの)ネストされたコンテンツはサポートされません。Beanが実際に作成された場合にのみ実行されます。
使用方法: JSP 1.1仕様には、単一のJSPページ内でid
属性に同じ値を複数回使用することはできないという制限があります。そのため、単一のページ内で<bean:define>
を複数回同じBean名で使用することはできません。
Beanを作成する様々な方法と、BeanをJSPページに導入する別のアプローチの詳細は、ApacheグループのWebサイト(http://jakarta.apache.org/struts/api/org/apache/struts/taglib/bean/package-summary.html#doc.Creation
)にあるBean開発者ガイドの関連セクションを参照してください。