2010-12-21 45 views
0

可以请任何有经验的人与Spring DispatcherPortlet处理后xmlHttpRequests,告诉我什么是最好的方式来做到这一点?我使用YUI IO模块和杰克逊对象映射器为例:Spring-portlet POST ajax xmlHttpRequest

@ResourceMapping(value="stuff") 
public void method(ResourceResponse response){ 
    Person person = new Person(); 
    person.setWeight(150); 
    ObjectMapper mapper = new ObjectMapper(); 
    try{ 
     mapper.writeValue(response.getWriter(), person); 
     } 
    ... 
    } 

阿贾克斯:

function() { 

    var A = AUI(); 

    A.io("<portlet:resourceURL id="stuff" />", { 
     method: 'POST', 
     data: { 
     description: 'value' 
     } 
    }); 
    } 

This在这里你可以投票了春天的portlet环境将具有相同的支持问题那个普通的spring-mvc有。这@ResponseBody是,数据转换成JSON等,现在据我所知一个人做手工......

编辑:想出解决方案

请:看看这个问题,这是更好地制定https://stackoverflow.com/questions/4782971/handling-ajax-requests-with-spring-portlet

+1

http://stackoverflow.com/questions/4782971/handling-ajax-requests-with-spring-portlet似乎不再存在 – Eric 2011-02-08 18:08:14

回答

0

你如何构建URL?我认为你正在创建一个Action URL,也许它应该是一个渲染URL。这意味着,而不是<portlet:actionURL/>你应该使用<portlet:renderURL/>

希望它有帮助。

+0

它必须是这是jsr 283规范的一部分。它主要是为了ajax请求而创建的。正确的注解是@ResourceMapping(value =“sample”)...但是Spring的Portlet不适合处理Ajax请求,没有内置的JSON响应支持,人们必须手动执行它...有这个问题,如果你喜欢portlet和spring,请投票支持:https://jira.springframework.org/browse/SPR-7344 – lisak 2010-12-21 23:35:53

+0

谢谢@lisak,我将明确地投票赞成这个不错的功能。 – 2010-12-22 00:04:24