1

<jsp:useBean>このタグを使用すると、スクリプトレット コードに頼らずに、JSP 内でオブジェクトをインスタンス化できることはわかっています。ただし、値がEL式の結果である整数をインスタンス化したいと思います。次のようなものです。

<jsp:useBean id="total" class="java.lang.Integer">
    <jsp:setProperty name="amount" value="${param1 + param2}"/>
</jsp:useBean>

もちろん、整数オブジェクトには「amount」という名前のプロパティがないため、これは機能しません。値を設定できる唯一の方法は、コンストラクター パラメーターを介することです (つまり、整数オブジェクトは不変です)。そのようなオブジェクトをインスタンス化し、スクリプトレット コードを使用せずにその値を設定する方法はありますか?

ありがとう、ドン

4

3 に答える 3

1

<c:set var="amount" value="${param1 + param2}" scope="page" />

于 2008-12-09T03:48:52.300 に答える
1

また、プリミティブ ラッパーにはデフォルトのコンストラクターがないため、そのように初期化することさえできません。

ELがそのように使用されることになっているかどうかはわかりません。それはテンプレート言語のようなものです。あなたがやろうとしていることが、次のようなものよりもどのような利点があるかは明らかではありません:

<%
  Integer total = new Integer(param1 + param2);
%>

そして、出力する値が必要な場所で <%= total %> を使用します。次のこともできます。

<%
  pageContext.setAttribute("total", new Integer(param1 + param2));
%>

useBean のように値をページスコープに入れたい場合。

于 2008-12-08T23:55:03.833 に答える
0

Bean がある場合、Bean を param1 と 2 で更新できますか? メソッド setAmount(param1, param2) を作成し、bean が呼び出す getAmount() を使用する前に設定します。

于 2008-12-08T22:17:39.503 に答える