31

オブジェクトをインスタンス化するスクリプトレットを含む JSP ページがあります。キャッシュを使用せずに、そのオブジェクトを JSP タグに渡したいと考えています。

たとえば、私はこれを達成したいと思います:

<%@ taglib prefix="wf" uri="JspCustomTag" %>

<% 
 Object myObject = new Object();
%>

<wf:my-tag obj=myObject />

キャッシュ (ページ、セッション、サーブレット コンテキスト) と直接対話することを避けようとしていますが、タグでそれを処理したいと考えています。

4

6 に答える 6

43

私がここで探したのは、少し異なる質問です:「オブジェクトをタグファイルに渡すにはどうすればよいですか?」

回答: 属性ディレクティブの「type」属性を使用します。

<%@ attribute name="field" 
              required="true"
              type="com.mycompany.MyClass" %>

型はデフォルトで java.lang.Stringに設定されているため、これがないと、オブジェクト フィールドにアクセスしようとすると、String 型のフィールドが見つからないというエラーが発生します。

于 2009-08-04T15:02:55.040 に答える
11
<jsp:useBean id="myObject" class="java.lang.Object" scope="page" />
<wf:my-tag obj="${myObject}" />

JSP ページでスクリプトレットを使用することは推奨されていません。テンプレート言語の目的を台無しにしてしまいます。

于 2008-12-10T06:28:54.770 に答える
5

元の構文は '<%= %>' を再利用することでした

そう

<wf:my-tag obj="<%= myObject %>" />

例については、Sun Tag Library チュートリアルのこの部分を参照してください。

于 2008-09-16T19:09:44.453 に答える
3

私にとって、式言語は、たとえばページ コンテキストに変数を配置して、その変数をアクセス可能にした場合にのみ機能します。

<%  Object myObject = new Object();
    pageContext.setAttribute("myObject", myObject);
%>
<wf:my-tag obj="${myObject}" />

それ以外の場合、ta は null を受け取ります。

そして<wf:my-tag obj="<%= myObject %>" />、追加の努力なしで動作します。また、<%=%> は jsp コンパイル時の型検証を提供しますが、El は実行時にのみ検証されます。

于 2008-09-16T19:48:18.807 に答える
1

「<%= %>」を使用して、タグで直接オブジェクトの値を取得できます。

    <wf:my-tag obj="<%= myObject %>"/>

そのオブジェクト内の変数の値を取得するには、次のように「obj.parameter」を使用して取得できます。

<wf:my-tag obj="<%= myObject.variableName %>"/>
于 2014-12-10T08:46:42.863 に答える
0

表現言語を使用する:

    <wf:my-tag obj = "$ {myObject}" />
于 2008-09-16T19:01:27.453 に答える