Spring dojo请求问题

时间:2013-08-20 07:21:58

标签: ajax json spring-mvc dojo

我对Spring框架很新,我遇到了问题。 我有一个页面A.jsp,在这个页面中我有一个链接到页面B.jsp

<c:url value="${pageContext.request.contextPath}" var="contextPath" />
Click <a href="${contextPath}/pageB">here</a>

在控制器中

@RequestMapping("pageB")
public String pageBlink(SitePreference sitePreference, Device device, Model model) {
return "pageB";     
}

现在在页面B.jsp我想调用一个Ajax调用。

I have a link <a href="javascript:myFunction();">Send request</a>

function myFunction(){
dojo.xhrGet({
// The URL of the request
url: "requestPage",
method: "POST",
handleAs: "json",
// The success callback with result from server
load: function(jsonData) {
var content = "";
                                dojo.forEach(jsonData.newsItems,function(locationPoint) {
// Build data from the JSON
content += "<p>" + locationPoint.name + "</p>";
content += "<p>" + locationPoint.latitude + "</p>";
content += "<p>" + locationPoint.longitude + "</p>";
content += "<p>" + locationPoint.number + "</p>";
});
},
// The error handler
error: function() {
// Do nothing -- keep old content there
},
// generate an extra GET variable to prevent browsers from caching
preventCache: true
});
}

并添加到控制器

@RequestMapping(value="requestPage", method = RequestMethod.GET)
public MyObj returnEVSELocations(){
    logger.log(Level.INFO, "return evse locations --------------");
    MyObj myObj = new MyObj();
    // add some stuff into the obj

    return myObj;
}

但是这个请求是一个requestPage.jps ...我只想在我的页面中工作(B.jsp)。 任何帮助都非常受欢迎。 谢谢!

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。 实际上有2个问题 1.在Ajax通话中,我必须拥有 dojo.forEach(jsonData, ...)代替dojo.forEach(jsonData.newsItems, ...) 2.在我的方法的控制器中,我必须添加注释

public @ResponseBody MyObj 

我希望这可以帮助某人解决同样的问题。