2

fooMVC コントローラーの ModelMap にモデル オブジェクト (" ") を追加しました。

スプリング MVC コントローラー:

Foo foo = new Foo("FooName");
model.addAttribute("foo", foo);
return "foo";

でオブジェクトのプロパティを呼び出すことができますfoo.jsp。オブジェクトにアクセスできるfooように、オブジェクトのエイリアスも設定します。オブジェクトが呼び出されることを期待しています。genericFoogenericFoogenericFoo

foo.jsp:

<c:out value="${foo.name}"/> <!-- Displays "FooName" -->
<c:set var="genericFoo" value="${foo}"/>
<jsp:include page="genericFoo.jsp" />

ただし、genericFoo.jspオブジェクトのプロパティは表示されません。

なぜだめですか?

genericFoo.jsp:

<c:out value="${genericFoo.name}"/> <!-- No value displayed displayed -->
4

1 に答える 1

4

動的インクルードを行うため<jsp:include>です (インクルードされた JSP にリクエストをディスパッチするようなものです)。また<c:set>、ページ スコープの属性内にオブジェクトを格納します。定義上、ページ スコープの属性は、それらを定義したページからのみ表示されます。

ソリューション:

  1. <%@include file="..."/>動的インクルードではなく、静的インクルードを使用する
  2. 属性をリクエストスコープの属性に入れます: <c:set var="genericFoo" value="${foo}" scope="request"/>.
于 2011-08-25T15:06:50.510 に答える