我对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)。 任何帮助都非常受欢迎。 谢谢!
答案 0 :(得分:0)
我发现了这个问题。
实际上有2个问题
1.在Ajax通话中,我必须拥有
dojo.forEach(jsonData, ...)
代替dojo.forEach(jsonData.newsItems, ...)
2.在我的方法的控制器中,我必须添加注释
public @ResponseBody MyObj
我希望这可以帮助某人解决同样的问题。