我不會說我的回答下面一定回答你的問題,但我通過谷歌在此網頁,而我試圖複製春AjaxEventDecoration(只加載一個頁面的片段),所以這裏是我現在發現,以防萬一有人到達這裏:
快速的答案是確保您將XMLHttpRequest的'接受'屬性設置爲'text/html; type = ajax',然後告訴Spring MVC只有(逗號應該返回由URL參數'fragments'指定的片段。
我使用Tiles服務器端和jQuery客戶端,這是我設置的粗略概述:
一個例子webmvc-配置。XML
...
<bean id="tilesViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver">
<property name="viewClass" value="org.springframework.js.ajax.tiles2.AjaxTilesView" />
</bean>
...
一個例子頁的瓷磚配置
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="eventPage" extends="twoColumnLayout">
<put-attribute name="title" value="My Event Page" />
<put-attribute name="view" value="/WEB-INF/jsp/viewText.jsp" />
<put-attribute name="objectViewer" value="/WEB-INF/jsp/viewEvent.jsp" />
</definition>
</tiles-definitions>
我有一個返回的被映射到該請求 '賽事頁面'(ModelMap實例的Java的控制器類.html在我的情況)。:
@Controller
public class EventPageController
{
/**
* Method to handle main my events page.
*/
@RequestMapping(value = "/eventPage.html", method = RequestMethod.GET)
public ModelMap pageDisplayHandlerForEvents(ModelMap model, HttpServletRequest req)
{
...
}
}
然後我的JavaScript客戶端代碼(即用於例子的緣故總是加載「objectViewer」片段):
注:您的HTML元素加載的片段必須有一個ID屬性匹配片段ID的ID屬性。
$(".springFragmentLoader").click(function()
{
$.ajax(__contextRoot + "/eventPage.html?fragments=objectViewer", {
beforeSend: function(req) {
req.setRequestHeader("Accept", "text/html;type=ajax");
},
complete : function(jqXHR)
{
$("#objectViewer").html(jqXHR.responseText);
}
});
}
詳情請參閱Handling Ajax Requests。
希望有所幫助。
從你的控制器提供一些代碼。 – heikkim 2010-11-26 09:34:12