3

${...}JSPページに配置されたStrutsタグの構文でアクセスできる変数がわからないため、少しイライラしています。

例として、次のコードがあります。

<c:set target="${status.menue}" property="activeMenuePath" value="whatever" />

"status.menue"ドル記号と中括弧でアクセスできるようにするには、オブジェクトをどこで定義する必要がありますか。それは別の支柱タイルまたはフォームで定義されていますか?

4

1 に答える 1

5

JspContext#setAttribute()、、、またはをそれぞれ使用して、ページ、リクエスト、セッション、またはアプリケーションスコープのいずれかに配置する必要がServletRequest#setAttribute()ありHttpSession#setAttribute()ますServletContext#setAttribute()。通常、サーブレット内で直接または間接的にこれを行います。MVCフレームワークはこれを間接的に行い、通常はモデルオブジェクトに「リクエスト」、「セッション」、または「アプリケーション」スコープを与えることで構成できます。

式言語(EL)は、を使用してそれらにアクセスしますJspContext#findAttribute()

ちなみにこれはStrutsとは無関係です。これは、JSP/サーブレットAPIの上に構築された単なるレガシーMVCフレームワークです。これもStrutsタグで<c:set>はなく、 JSTLタグです。

于 2010-04-27T11:38:42.927 に答える