私はSpring3MVCを使用して、共通のレイアウトと頻繁に変更/更新される「コンテンツ」divを持つWebアプリを構築しています。コンテンツマークアップは独自のタイルにあり、ページ全体を更新せずにAJAXを介してそのタイルを更新できるようにしたいと考えています。クライアントからAJAXリクエストを起動し、コントローラーで処理する方法を知っています。Springの構成(ビュー、ビューリゾルバーなど)についてほとんど混乱しています。誰か例がありますか?
質問する
7000 次
1 に答える
7
基本的に、HTML スケルトンなしで必要なコンテンツのみを含むタイル ビューを作成し、ajax 要求を処理するコントローラーでこのビュー/タイルをレンダリングできます。
foo.jsp というページがあるとします。を呼び出すとhttp://example.com/myapp/foo
、本文のコンテンツとして foo.jsp を含む html ページ全体がレンダリングされます。を呼び出すときはhttp://example.com/myapp/ajax/foo
、HTML スケルトン全体なしで foo.jsp のみを送信する必要があります。これにより、クライアントは ajax を介してこれをロードし、ページ内の一部を置き換えることができます。
1 つはページ全体に foo.jsp を埋め込むビュー定義で、もう 1 つは foo.jsp 自体のみを含むビュー定義です。app-layout.jsp には、"body" 属性を持つ HTML スケルトン全体が含まれます。
<definition name="foo" template="/WEB-INF/layouts/app-layout.jspx">
<put-attribute name="body">
<definition template="/WEB-INF/views/foo.jsp">
<put-attribute name="message" value="hello"/>
</definition>
</put-attribute>
</definition>
<definition name="ajax.foo" template="/WEB-INF/views/foo.jsp">
<put-attribute name="message" value="hello"/>
</definition>
URL を処理するコントローラー/ajax/foo
はビュー "ajax.foo" を/foo
返し、URL を処理するコントローラーはビュー "foo" を返します。
@Controller
@RequestMapping("/ajax")
public void class AjaxController {
@RequestMapping("/foo")
public String foo() {
return "ajax.foo";
}
}
@Controller
@RequestMapping("/")
public void class AppController {
@RequestMapping("/foo")
public String foo() {
return "foo";
}
}
于 2012-08-31T07:50:16.837 に答える