我不会说我的回答下面一定回答你的问题,但我通过谷歌在此网页,而我试图复制春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