我的控制器:AJAX獲取從Spring MVC控制器數據
@RequestMapping(value = "jobs")
public void removeJobs(@RequestParam("username") String username, Model model) {
String []jobs = jobsFetcher(username);
model.addAttribute("list", jobs);
}
我的jsp中:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link type="text/css" rel="stylesheet"
href="<c:url value="public/files/styles/jobManager.css" />" />
<script type="text/javascript">
function ajaxFunction(username) {
var xmlhttpReq = crossBrowserAjaxObject();
if (xmlhttpReq) {
xmlhttpReq.open("get", "jobs", true);
xmlhttpReq.onreadystatechange = handleServerResponse(xmlhttpReq);
xmlhttpReq.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xmlhttpReq.send("username=" + username);
}
}
function crossBrowserAjaxObject() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
function handleServerResponse(xmlhttpReq) {
//var xmlhttp = new XMLHttpRequest();
return function() {
alert(xmlhttpReq.readyState);
if (xmlhttpReq.readyState == 4 && xmlhttpReq.status == 200) {
alert(xmlhttpReq.responseText); // this is ok
// HERE HOW DO I GET THE MODEL OBJECT AS A RESPONSE COMMING FROM SERVLET &
// USE IN MY JSP FILE ?
}
};
}
</script>
</head>
<body>
<div>
<div class="leftDiv">
<a href="#" onclick="ajaxFunction('JAMES')">JAMES</a>
<a href="#" onclick="ajaxFunction('David')">David</a>
<a href="#" onclick="ajaxFunction('Catrina')">Catrina</a>
<a href="#" onclick="ajaxFunction('Cathy')">Cathy</a>
<a href="#" onclick="ajaxFunction('Paul')">Paul</a>
</div>
<div class="rightDiv">
<!-- HOW DO I GET THE JOB LIST & USE IT HERE USING MY AJAX ? -->
<c:forEach items="???" var="task">
<p>${task}</p>
</c:forEach>
</div>
</div>
</body>
</html>
現在,正如我的圖片裏面提到的,我想我的右div元素變化時我點擊員工而不刷新整個頁面。
我唯一不知道的是當xmlhttpReq.responseText返回給我時,我該如何獲取使用Ajax進行一系列作業的modelelement &用它來渲染頁面...
換句話說,在Ajax調用&使用Ajax本身來製作我的頁面後,我將如何從控制器中獲取參數?
你有任何想法或建議,或可以幫助我通過這個?
(順便說一下,這些代碼還沒有進行測試!)
我看到了,看起來不錯,也很有幫助,但它沒有涵蓋我的主要問題。我想知道如何在ajax請求之後使用來自控制器的模型屬性並在jsp頁面中使用它? – Mehdi 2013-05-14 12:24:42
除非您返回新的模型和視圖(它將打開一個新頁面),否則不能將模型與ajax請求一起使用。哪個有點擊敗ajax的重點。 – NimChimpsky 2013-05-14 12:25:08
你能解釋一下嗎?或者向我展示任何涵蓋AJAX和Servlet之間關係的規範? – Mehdi 2013-05-14 12:35:25