jsp中利用jquery+ajax在前后臺之間傳遞json格式參數(shù)
更新時(shí)間:2013年10月22日 16:45:37 作者:
前后臺之間的參數(shù)傳遞一直是個(gè)問題,經(jīng)過一段時(shí)間的實(shí)驗(yàn)琢磨,終于搞定,先把經(jīng)驗(yàn)?zāi)贸鰜砼c大家分享,希望可以讓新手朋友們少走彎路
經(jīng)過一段時(shí)間的實(shí)驗(yàn)琢磨,終于將前后臺之間的參數(shù)傳遞搞定了,實(shí)驗(yàn)所用工具myeclipse+structs1.2。
總結(jié):容易出錯(cuò)的地方:1.ajax中data的格式一定要寫對,這里舉了兩種形式,一種是 data:{參數(shù):“”} 另一種是 data:“參數(shù)=”+變量。
2.后臺傳遞到前臺數(shù)據(jù)轉(zhuǎn)化為json格式,步驟要掌握好。
3.在js使用jquery必須要引用進(jìn)來,否則會不執(zhí)行jquery語句,這個(gè)問題困擾了我半天才解決掉,菜鳥的悲哀啊。jquery引用流程如下:網(wǎng)上下載jQuery.js,jquery-1.4.2.min.js兩個(gè)js文件,放在webroot下的文件夾js中,引用代碼如下:
<script src="<%=path%>/js/jQuery.js" language="javascript"type="text/javascript"></script>
<script src="<%=path%>/js/jquery-1.4.2.min.js" language="javascript"type="text/javascript"></script>
其中<%=path%>就代表了根目錄wenroot文件目錄。
4.ajax的url路徑必須要寫對。
5.當(dāng)前臺沒有傳遞參數(shù)到后臺時(shí),data可以不用寫,或用data:{}代替。
前臺代碼如下:
<span style="white-space:pre"> </span>var checkValue=$("#s1").val();
<span style="white-space:pre"> </span>//這個(gè)var是獲取的id問s1的select選擇的opention值
$
.ajax({
type : "post",
url : "getShowDataList.do",
async : true,
//data:{data:""},這種也可以
data :
"filepath="+checkValue
<span style="white-space:pre"> </span>//data:中的是傳遞到后臺的數(shù)據(jù),這里數(shù)據(jù)格式為json格式
,
dataType : "json",
error : function() {
//alert(checkValue);
alert('加載失?。?);
},
success : function(json) {
<span style="white-space:pre"> </span>//這里的json是后臺傳遞過來的數(shù)據(jù),這里數(shù)據(jù)格式也是json格式
前臺獲取后臺的json格式list數(shù)據(jù)集,這段寫在function中
var points = [];//創(chuàng)建數(shù)組
for ( var i = 0; i < json.length; i++) {
var str = new OpenLayers.LonLat(json[i].lon,
json[i].lat);
points.push(str);
}
后臺代碼:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String filepath = request.getParameter("filepath");
<span style="white-space:pre"> </span>//獲取前臺傳遞過來的filepath
System.out.println(filepath);
List<Show> datalist = getShowData(filepath);
response.setContentType("appliction/json;charset=utf-8");
JSONArray jsonArray = JSONArray.fromObject(datalist);
try {
PrintWriter out = response.getWriter();
out.print(jsonArray);
for (int i = 0; i < jsonArray.size(); i++) {
System.out.println(jsonArray.get(i));
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
總結(jié):容易出錯(cuò)的地方:1.ajax中data的格式一定要寫對,這里舉了兩種形式,一種是 data:{參數(shù):“”} 另一種是 data:“參數(shù)=”+變量。
2.后臺傳遞到前臺數(shù)據(jù)轉(zhuǎn)化為json格式,步驟要掌握好。
3.在js使用jquery必須要引用進(jìn)來,否則會不執(zhí)行jquery語句,這個(gè)問題困擾了我半天才解決掉,菜鳥的悲哀啊。jquery引用流程如下:網(wǎng)上下載jQuery.js,jquery-1.4.2.min.js兩個(gè)js文件,放在webroot下的文件夾js中,引用代碼如下:
<script src="<%=path%>/js/jQuery.js" language="javascript"type="text/javascript"></script>
<script src="<%=path%>/js/jquery-1.4.2.min.js" language="javascript"type="text/javascript"></script>
其中<%=path%>就代表了根目錄wenroot文件目錄。
4.ajax的url路徑必須要寫對。
5.當(dāng)前臺沒有傳遞參數(shù)到后臺時(shí),data可以不用寫,或用data:{}代替。
前臺代碼如下:
復(fù)制代碼 代碼如下:
<span style="white-space:pre"> </span>var checkValue=$("#s1").val();
復(fù)制代碼 代碼如下:
<span style="white-space:pre"> </span>//這個(gè)var是獲取的id問s1的select選擇的opention值
$
.ajax({
type : "post",
url : "getShowDataList.do",
async : true,
//data:{data:""},這種也可以
data :
"filepath="+checkValue
復(fù)制代碼 代碼如下:
<span style="white-space:pre"> </span>//data:中的是傳遞到后臺的數(shù)據(jù),這里數(shù)據(jù)格式為json格式
,
dataType : "json",
error : function() {
//alert(checkValue);
alert('加載失?。?);
},
success : function(json) {
復(fù)制代碼 代碼如下:
<span style="white-space:pre"> </span>//這里的json是后臺傳遞過來的數(shù)據(jù),這里數(shù)據(jù)格式也是json格式
前臺獲取后臺的json格式list數(shù)據(jù)集,這段寫在function中
復(fù)制代碼 代碼如下:
var points = [];//創(chuàng)建數(shù)組
for ( var i = 0; i < json.length; i++) {
var str = new OpenLayers.LonLat(json[i].lon,
json[i].lat);
points.push(str);
}
后臺代碼:
復(fù)制代碼 代碼如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String filepath = request.getParameter("filepath");
復(fù)制代碼 代碼如下:
<span style="white-space:pre"> </span>//獲取前臺傳遞過來的filepath
System.out.println(filepath);
List<Show> datalist = getShowData(filepath);
response.setContentType("appliction/json;charset=utf-8");
JSONArray jsonArray = JSONArray.fromObject(datalist);
復(fù)制代碼 代碼如下:
try {
PrintWriter out = response.getWriter();
out.print(jsonArray);
for (int i = 0; i < jsonArray.size(); i++) {
System.out.println(jsonArray.get(i));
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
您可能感興趣的文章:
- Jquery ajax不能解析json對象,報(bào)Invalid JSON錯(cuò)誤的原因和解決方法
- jQuery高級編程之js對象、json與ajax用法實(shí)例分析
- JQuery處理json與ajax返回JSON實(shí)例代碼
- jquery的ajax異步請求接收返回json數(shù)據(jù)實(shí)例
- jQuery Ajax異步處理Json數(shù)據(jù)詳解
- jQuery中使用Ajax獲取JSON格式數(shù)據(jù)示例代碼
- jquery用ajax方式從后臺獲取json數(shù)據(jù)后如何將內(nèi)容填充到下拉列表
- 詳談 Jquery Ajax異步處理Json數(shù)據(jù).
- JQuery的ajax獲取數(shù)據(jù)后的處理總結(jié)(html,xml,json)
- jquery ajax跨域解決方法(json方式)
- 淺談JSON和JSONP區(qū)別及jQuery的ajax jsonp的使用
- jQuery使用ajax傳遞json對象到服務(wù)端及contentType的用法示例
相關(guān)文章
JSP中內(nèi)建exception對象時(shí)出現(xiàn)500錯(cuò)誤的解決方法
這篇文章主要介紹了JSP中內(nèi)建exception對象時(shí)出現(xiàn)500錯(cuò)誤的解決方法,以一個(gè)簡單實(shí)例形式分析了exception對象出現(xiàn)500錯(cuò)誤的解決方法,涉及瀏覽器及error文件的設(shè)置技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
用連接池提高Servlet訪問數(shù)據(jù)庫的效率(2)
用連接池提高Servlet訪問數(shù)據(jù)庫的效率(2)...2006-10-10
JSP中的編譯指令和動(dòng)作指令的兩點(diǎn)區(qū)別
編譯指令是通知Servlet引擎的處理消息,而動(dòng)作指令只是運(yùn)行時(shí)的腳本動(dòng)作,相信請看下文2014-07-07
JSP使用Servlet過濾器進(jìn)行身份驗(yàn)證的方法
這篇文章主要介紹了JSP使用Servlet過濾器進(jìn)行身份驗(yàn)證的方法,結(jié)合實(shí)例形式分析了Servlet過濾器的實(shí)現(xiàn)方法及jsp身份驗(yàn)證的具體使用技巧,需要的朋友可以參考下2015-12-12
實(shí)例講解JSP Model2體系結(jié)構(gòu)(中)
實(shí)例講解JSP Model2體系結(jié)構(gòu)(中)...2006-10-10
JSP中實(shí)現(xiàn)判斷客戶端手機(jī)類型并跳轉(zhuǎn)到app下載頁面
這篇文章主要介紹了JSP中實(shí)現(xiàn)判斷客戶端手機(jī)類型并跳轉(zhuǎn)到app下載頁面,實(shí)現(xiàn)的原理,是檢測瀏覽器的 USER-AGENT 這個(gè)header,然后根據(jù)正則表達(dá)式來確定客戶端類型,需要的朋友可以參考下2014-09-09
request.getParameter()取值為null的解決方法
在后臺通過Request取值為null,是因?yàn)橹辉O(shè)置了id屬性,而取值候用的是name屬性,問題就出現(xiàn)在這里2014-06-06

