Вы упоминаете портлеты в своем вопросе.Работа с Spring и портлетами немного отличается от сервлетов.
Итак, предположим, что у вас есть такой портлет
@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 идентифицируется по идентификатору ресурса,URL-адрес для сопоставления ресурсов может быть создан с использованием стандартных методов и классов API портлета createResourceURL()
и javax.portlet.ResourceURL
.
Если вы предпочитаете использовать библиотеку тегов портлета, вы также можете сгенерировать URL ресурса с помощью<portlet:resourceRequest>
tag.
Ваш взгляд может выглядеть примерно так
myPortlet.jsp
...
<script>
$.ajax({
url :${resourceUrl},
cache: false,
data:$('#myForm').formSerialize(),
dataType: "json",
type: "GET",
contentType: "application/json; charset=utf-8",
success: function(jsondata){
.........
.........
.........
}
});
</script>
...