您在问题中提到了Portlet。 使用Spring和Portlet与Servlet有点不同。
因此,假设您有一个像这样的portlet
@Controller
@RequestMapping("VIEW") // VIEW mapping (as opposed to EDIT)
public class MyPortlet {
@RenderMapping
public ModelAndView handleRenderView(RenderRequest request, RenderResponse response) {
ResourceURL resourceUrl = response.createResourceURL();
resourceUrl.setResourceID("myResource"); // this is the id used to reference a @ResourceMapping
ModelAndView ret = new ModelAndView("myPortlet");
ret.addObject("resourceUrl", resourceUrl.toString());
return ret;
}
@ResourceMapping("myResource")
public void handleMyResource(ResourceRequest request, ResourceResponse response) {
OutputStream out = response.getPortletOutputStream();
// write whatever to output
}
}
如您所见,@ ResourceMapping由资源ID标识。 可以使用标准portlet API方法和类createResourceURL()和javax.portlet.ResourceURL创建资源映射的url。
如果您更喜欢使用portlet标记库,则还可以使用标记生成资源URL。
您的视图可能看起来像这样
myPortlet.jsp
...
$.ajax({
url :${resourceUrl},
cache: false,
data:$('#myForm').formSerialize(),
dataType: "json",
type: "GET",
contentType: "application/json; charset=utf-8",
success: function(jsondata){
.........
.........
.........
}
});
...