本文介紹了springMVC常用的傳參方式和一些注意的事項后众,頁面表單主要以ajax的形式提交.
本帥是個菜雞仅政,水平有限擅威,若有什么講得不對或有補充的地方歡迎各位提意見魁淳。
1.controller方法使用String對象作為參數(shù)接收
(a) controller
使用controller使用string類型接收与倡,參數(shù)名與ajax提交參數(shù)名對應(yīng)即可
[java]view plaincopy
@RequestMapping("test")??
@ResponseBody??
public?RespMessage?test(String?a,String?b){??
????System.out.println(a);??
????System.out.println(b);??
return?RespMessage.success();//這個是返回固定格式的響應(yīng)數(shù)據(jù)界逛,不用管??
}??
(b)頁面提交代碼
[java]view plaincopy
var?data?=?{??
a:"paramA",??
b:"paramB"??
}??
$.ajax({??
"type"?:"post",//請求方式??
"url"?:"test",//請求連接??
"dataType":"json",//預(yù)期服務(wù)器返回格式,不設(shè)置jq也會自己判斷??
//"contentType"?:?"application/x-www-form-urlencoded;charset=utf-8",??
//不要指定contentType纺座,它會自動識別傳參類型息拜,設(shè)置不對反而會報400??
data:data,//請求參數(shù)??
????success?:?function(data)?{}??
});??
(c)控制臺輸出
paramA
paramB
2. controller使用bean作為參數(shù)接收
(a)TestBean
[java]view plaincopy
publicclass?TestBean?{??
private?String?a;??
private?String?b;??
public?String?getA()?{??
return?a;??
????}??
publicvoid?setA(String?a)?{??
this.a?=?a;??
????}??
public?String?getB()?{??
return?b;??
????}??
publicvoid?setB(String?b)?{??
this.b?=?b;??
????}??
}??
(b)controller
ajax提交的參數(shù)名需要與TestBean成員對象名對應(yīng)
[java]view plaincopy
@RequestMapping("test")??
@ResponseBody??
public?RespMessage?test(TestBean?testBean){??
????System.out.println(testBean.getA());??
????System.out.println(testBean.getB());??
return?RespMessage.success();??
}??
(c)頁面提交代碼同 "一. 1.(b)"
(d)控制臺輸出同 "?一.?1.(c)"
(a)controller
[java]view plaincopy
@RequestMapping("test3")??
@ResponseBody??
public?RespMessage?test(HttpServletRequest?request){??
System.out.println(request.getParameter("a"));??
System.out.println(request.getParameter("b"));??
return?RespMessage.success();??
}??
注意:Content-Type不是application/x-www-form-urlencoded的POST請求是不會讀取請求體數(shù)據(jù)和進行相應(yīng)的參數(shù)處理的,即不會解析表單數(shù)據(jù)來放到request parameter map中净响。所以通過request.getParameter(name)是獲取不到的少欺。
其他同上
(a)頁面提交代碼
[javascript]view plaincopy
/*var?data?=?{?
????arr:['a','b','c']?
}*///這種方式是不能服務(wù)器是接收不到數(shù)據(jù)的???
var?data?="arr=a&arr=b&arr=c"??
//或者??
//</span><span?style="font-family:Arial,?Helvetica,?sans-serif;">var?data?=?"arr=a,b,c";</span>??
$.ajax({??
"type"?:"post",//請求方式??
"url"?:"test5",//請求連接??
"dataType":"json",//預(yù)期服務(wù)器返回格式馋贤,不設(shè)置jq也會自己判斷??
????data:data,??
success?:function(data)?{}??
});??
(b)controller
[java]view plaincopy
@RequestMapping("test")??
@ResponseBody??
public?RespMessage?test(String[]?arr){??
for(String?a:arr){??
????????System.out.println(a);??
????}??
return?RespMessage.success();??
}??
(c)控制臺輸出
a
b
c
(d)順便一提赞别,我們可以使用jq的serialize()方法將form序列化成"arr=a&arr=b&arr=c"這樣的格式的數(shù)據(jù),具體如下:
html部分
[javascript]view plaincopy
</form>???
js部分
[javascript]view plaincopy
var?data?=?$("#form").serialize()??
//data="arr=a&arr=b&arr=c"??
(a)controller
在參數(shù)上加上@RequestBody注解后就可以接收到前端傳來的json格式的數(shù)據(jù)
[java]view plaincopy
@RequestMapping("test")??
@ResponseBody??
public?RespMessage?test(@RequestBody?String[]?arr){??
for(String?a:arr){??
????????System.out.println(a);??
????}??
return?RespMessage.success();??
}??
(b)頁面提交代碼
前端這里要注意的地方有兩個掸掸,一是jq封裝的ajax參數(shù)的data這里要傳字符串格式的數(shù)據(jù)氯庆,也就是說在傳值之前需要調(diào)用JSON.stringify()方法將json對象轉(zhuǎn)成字符類型蹭秋,這并不代表服務(wù)器拿到的是字符串扰付,到了服務(wù)器那邊是json對象,只是前端這里傳參需要的是字符串仁讨,其內(nèi)部是怎么轉(zhuǎn)換的還沒有進行深入研究羽莺。 二是要制定contentType為"application/json"否則會報415錯誤。
[java]view plaincopy
var?data?=?['a','b','c'];??
data?=?JSON.stringify(data);//這一部很重要洞豁,將json對象轉(zhuǎn)成字符串格式??
$.ajax({??
"type"?:"post",//請求方式??
"url"?:"test6",//請求連接??
"contentType"?:"application/json;charset=utf-8",//這個時候就必須加contentType??
"dataType":"json",//預(yù)期服務(wù)器返回格式盐固,不設(shè)置jq也會自己判斷??
????data:data,??
????success?:?function(data)?{}??
});??
(c)控制臺輸出
a
b
c
這個方法有個不好的地方就是如果這個參數(shù)沒有傳就會報異常
(a)controller
[java]view plaincopy
@RequestMapping("test")??
@ResponseBody??
public?RespMessage?test(@RequestParam(value?="arr[]")?String[]?arr){??
for(String?a:arr){??
????????System.out.println(a);??
????}??
return?RespMessage.success();??
}??
(b)請求頁面代碼
[javascript]view plaincopy
var?data?=?{??
arr:['a','b','c']??
}??
$.ajax({??
"type"?:"post",//請求方式??
"url"?:"test4",//請求連接??
"dataType":"json",//預(yù)期服務(wù)器返回格式,不設(shè)置jq也會自己判斷??
????data:data,??
success?:function(data)?{}??
});??
(a)controller
[javascript]view plaincopy
@RequestMapping("test5")??
@ResponseBody??
public?RespMessage?test2(String[]?arr){??
for(String?a:arr){??
????????System.out.println(a);??
????}??
return?RespMessage.success();??
}??
(b)請求界面代碼
[javascript]view plaincopy
var?data?=new?FormData($('#form')[0]);??
$.ajax({??
"type"?:"post",//請求方式??
"url"?:"test5",//請求連接??
processData:false,//必須加否則出錯??
contentType:false,//必須加否則出錯??
"dataType":"json",//預(yù)期服務(wù)器返回格式丈挟,不設(shè)置jq也會自己判斷??
????data:data,??
success?:function(data)?{}??
});??
一般遇到比較復(fù)雜的對象就使用@requestBody注解比較方便
(a)bean
[java]view plaincopy
publicclass?TestBean2?{??
private?String?a;??
private?String?b;??
private?TestBean?bean;??
private?TestBean[]?beans;??
public?TestBean[]?getBeans()?{??
return?beans;??
????}??
publicvoid?setBeans(TestBean[]?beans)?{??
this.beans?=?beans;??
????}??
public?String?getA()?{??
return?a;??
????}??
publicvoid?setA(String?a)?{??
this.a?=?a;??
????}??
public?String?getB()?{??
return?b;??
????}??
publicvoid?setB(String?b)?{??
this.b?=?b;??
????}??
public?TestBean?getBean()?{??
return?bean;??
????}??
publicvoid?setBean(TestBean?bean)?{??
this.bean?=?bean;??
????}??
}??
(b)controller
[java]view plaincopy
@RequestMapping("test7")??
@ResponseBody??
public?RespMessage?test7(@RequestBody?TestBean2?test){??
return?RespMessage.success();??
}??
(c)請求頁面代碼
[java]view plaincopy
var?data?=?{??
a:"paramA",??
b:"paramB",??
bean:{a:"beanA",b:"beanB"},??
beans:[{a:"beansA1",b:"beadsB1"},{a:"beansA2",b:"beadsB2"}]??
}??
data?=?JSON.stringify(data);??
$.ajax({??
"type"?:"post",//請求方式??
"url"?:"test7",//請求連接??
"dataType":"json",//預(yù)期服務(wù)器返回格式,不設(shè)置jq也會自己判斷??
"contentType"?:"application/json;charset=utf-8",??
????data:data,??
????success?:?function(data)?{}??
});??
(d)測試結(jié)果
(a)controller
[java]view plaincopy
@RequestMapping("test8")??
@ResponseBody??
public?RespMessage?test8(TestBean2?test){??
return?RespMessage.success();??
}??
(b)提交頁面代碼
[java]view plaincopy
</form>???
順便一提:這個也可以通過var data = new FormData($('#form')[0]);獲取formdata對象然后通過ajax提交曙咽,具體可以參照二.4這里就不贅述了蛔趴。
(a)controller
[java]view plaincopy
@RequestMapping("test10")??
@ResponseBody??
public?RespMessage?test10(MultipartFile?file){??
try?{??
file.transferTo(new?File("E://".concat(file.getOriginalFilename())));??
}catch?(IllegalStateException?e)?{??
????????e.printStackTrace();??
}catch?(IOException?e)?{??
????????e.printStackTrace();??
????}??
return?RespMessage.success();??
}??
(b)提交頁面代碼
[java]view plaincopy
</form>???
順便一提:文件上傳同樣可以使用formdata對象使用ajax進行提交例朱,具體參考上面的步驟孝情,這里就不贅述了。
這里順便提供一個帶進度條的文件上傳方法:
[javascript]view plaincopy
//上傳按鈕點擊??
$("#uploadbtn").click(function(){??
var?files?=?$("#file")["0"].files;??
var?len?=?files.length;??
for(var?i=0;i<len;i++)?{??
????????????????UpladFile(files[i],i);??
????????????}??
????????})??
//開始上傳??
function?UpladFile(fileObj,i)?{????
//bar.fadeIn();??
//var?fileObj?=?document.getElementById("file").files[0];?//?js?獲取文件對象????
var?FileController?="/cwjgpt/notice/FileUpload.do";//?接收上傳文件的后臺地址?????
//?FormData?對象---進行無刷新上傳????
var?form?=new?FormData();????
//form.append("author",?"hooyes");?//?可以增加表單數(shù)據(jù)????
form.append("file",?fileObj);//?文件對象????
//?XMLHttpRequest?對象????
var?xhr?=new?XMLHttpRequest();????
xhr.open("post",?FileController,true);????
xhr.onload?=function()?{???
//alert("上傳完成!");????
????????????};????
//監(jiān)聽progress事件????
xhr.upload.addEventListener("progress",???
function(evt){??
if?(evt.lengthComputable)?{????
var?procce?=?Math.round(evt.loaded?/?evt.total?*?100);//計算進入百分比??
updataprocess(i,procce);//這個是自己寫的一個更新進度條的方法洒嗤,這里你們自己實現(xiàn)然后更新界面的進度條??
????????????????????????}????
????????????????????}??
,false);????
????????????xhr.send(form);????
????????}????
項目中傳參總結(jié):
1箫荡、后臺Controller通過request轉(zhuǎn)對象
(1)前臺ajax請求:
var param = {
"receiver_name": $("#receiver_name").val().trim(),
"province_code": $("#i_province").find("option:selected").val(),
"city_code": $("#i_cityCode").find("option:selected").val(),
"district_code": $("#i_areaCode").find("option:selected").val(),
"province_name": $("#i_province").find("option:selected").text(),
"city_name": $("#i_cityCode").find("option:selected").text(),
"district_name": $("#i_areaCode").find("option:selected").text(),
"address": $("#address").val().trim(),
"print_address":$("#print_address").val().trim(),
"contact_phone": $("#contact_phone").val(),
"default_address": $("#default_address").is(":checked")?1:0,
"purchaser":$("#purchaser").val().trim(),
"purchaser_phone":$("#purchaser_phone").val().trim()
};
$.ajax({
url: ctx + "/address/saveAddress",
data: param,
type: 'post',
dataType: 'json',
success: function(data) {
if(data.state == "success"){
doQuery();
$('#main-content').hideLoading();
}else if(data.state == "many"){
$('#main-content').hideLoading();
alertModal("保存失敗渔隶,收貨地址最多為10個!");
}else{
$('#main-content').hideLoading();
alertModal("保存異常羔挡,請聯(lián)系管理員!");
}
}
});
(2)后臺接受并處理請求
UsermanageReceiverAddress receAddress = Request2MapUtil.wrapBean(UsermanageReceiverAddress.class, request);
Map params = Request2MapUtil.wrapMap(request);
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.yaoex.framework.core.util;
import java.beans.PropertyDescriptor;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
public class Request2MapUtil {
public Request2MapUtil() {
}
private static Object convertType(String classType, String value) {
if(value == null) {
return null;
} else {
try {
if(classType.equals("java.lang.String")) {
return value.trim();
} else if(classType.equals("java.lang.Integer")) {
return Integer.valueOf(value);
} else if(classType.equals("java.lang.Long")) {
return Long.valueOf(value);
} else if(classType.equals("java.lang.Float")) {
return Float.valueOf(value);
} else if(classType.equals("java.lang.Double")) {
return Double.valueOf(value);
} else if(classType.equals("java.math.BigDecimal")) {
return new BigDecimal(value);
} else {
SimpleDateFormat formatter;
if(classType.equals("java.util.Date")) {
if(value.length() == 10) {
formatter = new SimpleDateFormat("yyyy-MM-dd");
} else if(value.length() == 16) {
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
} else if(value.length() == 19) {
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
} else {
formatter = new SimpleDateFormat("yyyy-MM-dd");
}
formatter.setLenient(false);
return formatter.parse(value);
} else if(classType.equals("java.sql.Date")) {
if(value.length() == 10) {
formatter = new SimpleDateFormat("yyyy-MM-dd");
} else if(value.length() == 16) {
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
} else if(value.length() == 19) {
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
} else {
formatter = new SimpleDateFormat("yyyy-MM-dd");
}
formatter.setLenient(false);
Date date = formatter.parse(value);
return new java.sql.Date(date.getTime());
} else {
return classType.equals("java.lang.Boolean")?Boolean.valueOf(value):(classType.equals("java.lang.Byte")?Byte.valueOf(value):(classType.equals("java.lang.Short")?Short.valueOf(value):(classType.equals("java.lang.Object")?value:null)));
}
}
} catch (NumberFormatException var4) {
return null;
} catch (ParseException var5) {
return null;
}
}
}
public static T wrapBean(Class beanClass, HttpServletRequest request) throws InstantiationException, IllegalAccessException {
T objInstance = beanClass.newInstance();
BeanWrapper beanWrapper = new BeanWrapperImpl(objInstance);
PropertyDescriptor[] var7;
int var6 = (var7 = beanWrapper.getPropertyDescriptors()).length;
for(int var5 = 0; var5 < var6; ++var5) {
PropertyDescriptor descriptor = var7[var5];
String name = descriptor.getName();
String type = descriptor.getPropertyType().getName();
if(beanWrapper.isWritableProperty(name)) {
Object value = convertType(type, request.getParameter(name));
if(value != null) {
beanWrapper.setPropertyValue(name, value);
}
}
}
return objInstance;
}
public static Object wrapBean(Class beanClass, HttpServletRequest request, Map bean_name) throws InstantiationException, IllegalAccessException {
Object objInstance = beanClass.newInstance();
BeanWrapper beanWrapper = new BeanWrapperImpl(objInstance);
PropertyDescriptor[] var8;
int var7 = (var8 = beanWrapper.getPropertyDescriptors()).length;
for(int var6 = 0; var6 < var7; ++var6) {
PropertyDescriptor descriptor = var8[var6];
String name = descriptor.getName();
String type = descriptor.getPropertyType().getName();
if(beanWrapper.isWritableProperty(name)) {
Object value = convertType(type, request.getParameter(bean_name.get(name) == null?name:(String)bean_name.get(name)));
if(value != null) {
beanWrapper.setPropertyValue(name, value);
}
}
}
return objInstance;
}
public static Map wrapMap(HttpServletRequest request) {
String parameterName = null;
String parameterValue = null;
Map params = new HashMap();
Enumeration e = request.getParameterNames();
while(e.hasMoreElements()) {
parameterName = (String)e.nextElement();
parameterValue = request.getParameter(parameterName);
if(parameterValue != null && !"".equals(parameterValue.trim())) {
params.put(parameterName, parameterValue);
}
}
return params;
}
public static Map request2Map(HttpServletRequest request) {
Map result = new HashMap();
Map params = request.getParameterMap();
String key = null;
String[] value = null;
int size = false;
if(params != null) {
Iterator var7 = params.entrySet().iterator();
while(var7.hasNext()) {
Entry entry = (Entry)var7.next();
key = (String)entry.getKey();
value = (String[])entry.getValue();
int size = value.length;
if(value != null && size > 0) {
if(size == 1) {
result.put(key, value[0]);
} else {
result.put(key, value);
}
}
}
}
return result;
}
public static Map wrapMap(Class beanClass, HttpServletRequest request) throws InstantiationException, IllegalAccessException {
Map map = new HashMap();
Object objInstance = beanClass.newInstance();
BeanWrapper beanWrapper = new BeanWrapperImpl(objInstance);
PropertyDescriptor[] var8;
int var7 = (var8 = beanWrapper.getPropertyDescriptors()).length;
for(int var6 = 0; var6 < var7; ++var6) {
PropertyDescriptor descriptor = var8[var6];
String name = descriptor.getName();
if(beanWrapper.isWritableProperty(name) && request.getParameter(name) != null) {
map.put(name, request.getParameter(name).trim());
}
}
return map;
}
public static void wrapObject(Object obj, String[] keys, Map bean_name, HttpServletRequest request, int index) {
BeanWrapper beanWrapper = new BeanWrapperImpl(obj);
String[] var9 = keys;
int var8 = keys.length;
for(int var7 = 0; var7 < var8; ++var7) {
String key = var9[var7];
if(beanWrapper.isWritableProperty(key)) {
String[] values = request.getParameterValues(bean_name.get(key) == null?key:(String)bean_name.get(key));
if(values != null && values[index] != null) {
beanWrapper.setPropertyValue(key, values[index].trim());
}
}
}
}
public static Map wrapMap(String[] keys, HttpServletRequest request) throws InstantiationException, IllegalAccessException {
Map map = new HashMap();
String[] var6 = keys;
int var5 = keys.length;
for(int var4 = 0; var4 < var5; ++var4) {
String key = var6[var4];
map.put(key, request.getParameter(key));
}
return map;
}
public static Map wrapMap(Class beanClass, String[] keys, HttpServletRequest request) throws InstantiationException, IllegalAccessException {
Map map = wrapMap(beanClass, request);
String[] var7 = keys;
int var6 = keys.length;
for(int var5 = 0; var5 < var6; ++var5) {
String key = var7[var5];
map.put(key, request.getParameter(key));
}
return map;
}
public static Object wrapBean(String className, HttpServletRequest request) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
return wrapBean(Class.forName(className), request);
}
public static List wrapBeanList(Class beanClass, HttpServletRequest request) throws InstantiationException, IllegalAccessException {
List result = new ArrayList();
BeanWrapperImpl beanWrapper = new BeanWrapperImpl(beanClass);
BeanWrapperImpl wrapper = new BeanWrapperImpl();
PropertyDescriptor[] var8;
int var7 = (var8 = beanWrapper.getPropertyDescriptors()).length;
for(int var6 = 0; var6 < var7; ++var6) {
PropertyDescriptor descriptor = var8[var6];
String name = descriptor.getName();
String type = descriptor.getPropertyType().getName();
if(beanWrapper.isWritableProperty(name)) {
String[] values = request.getParameterValues(name);
if(values != null) {
for(int i = 0; i < values.length; ++i) {
Object value = convertType(type, values[i]);
if(value != null) {
Object objInstance;
if(i < result.size()) {
objInstance = result.get(i);
wrapper.setWrappedInstance(objInstance);
wrapper.setPropertyValue(name, value);
result.set(i, objInstance);
} else {
objInstance = beanClass.newInstance();
wrapper.setWrappedInstance(objInstance);
wrapper.setPropertyValue(name, value);
result.add(objInstance);
}
}
}
}
}
}
return result;
}
public static List wrapBeanList(Class beanClass, HttpServletRequest request, Map bean_name) throws InstantiationException, IllegalAccessException {
List result = new ArrayList();
BeanWrapperImpl beanWrapper = new BeanWrapperImpl(beanClass);
BeanWrapperImpl wrapper = new BeanWrapperImpl();
PropertyDescriptor[] var9;
int var8 = (var9 = beanWrapper.getPropertyDescriptors()).length;
for(int var7 = 0; var7 < var8; ++var7) {
PropertyDescriptor descriptor = var9[var7];
String name = descriptor.getName();
String type = descriptor.getPropertyType().getName();
if(beanWrapper.isWritableProperty(name)) {
String[] values = request.getParameterValues(bean_name.get(name) == null?name:(String)bean_name.get(name));
if(values != null) {
for(int i = 0; i < values.length; ++i) {
Object value = convertType(type, values[i]);
if(value != null) {
Object objInstance;
if(i < result.size()) {
objInstance = result.get(i);
wrapper.setWrappedInstance(objInstance);
wrapper.setPropertyValue(name, value);
result.set(i, objInstance);
} else {
objInstance = beanClass.newInstance();
wrapper.setWrappedInstance(objInstance);
wrapper.setPropertyValue(name, value);
result.add(objInstance);
}
}
}
}
}
}
return result;
}
public static List wrapBeanList(String className, HttpServletRequest request) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
return wrapBeanList(Class.forName(className), request);
}
}
2.后臺接受數(shù)組
(1)前臺ajax請求
var delAdviser = [];
$("input[name='adviserBox']").each(function(){
if($(this).prop("checked") == true){
delAdviser.push($(this).val());
}
});
if(delAdviser.length == 0){
alertModalb("請選擇要刪除的記錄喉钢!");
return false;
}
var url = ctx + "/adviser/deleteAdviser";
alertModal("確定要刪除選擇的記錄?",function(){
$.ajax({
url : url,
type : "post",
dataType:'json',
contentType:"application/json",
data : JSON.stringify(delAdviser),
success : function(data){
if(typeof(data) == "object" && !data.length){
if(data.state == "success"){
alertModalb("刪除成功税课!",function(){
listAdviserInfo(null);
});
}else{
alertModalb(data.mess);
}
}
}
});
});
(2)后臺使用@RequestBody注解
@RequestMapping(value="deleteAdviser",method=RequestMethod.POST)
@ResponseBody
public String deleteAdviser(@RequestBody Integer[] idArr,HttpServletRequest request, HttpServletResponse response){}
3.數(shù)組和其他參數(shù)混合
(1)陆馁、前臺
var arr = [];
var condition = {selectValList:arr,channelId:channel_id,channelType:channel_type}击狮;
$.ajax({
url: ctx + "/mp/channel/changeChannelCustomerStatus",
data:condition,
type:'post',
dataType:'json',
success:function(data){
});
(2)后臺
String[] selectValList = request.getParameterValues("selectValList[]");
String channelId = request.getParameter("channelId");
String channelType = request.getParameter("channelType");
4.數(shù)組字符串和其他參數(shù)組合
(1)前臺
var groupIds = "";
var custIds = "";
groupIds = objInput[i].value +","+groupIds;
custIds = objInput[i].value +","+custIds;
groupIds = groupIds.substring(0,groupIds.length-1);
custIds = custIds.substring(0,custIds.length-1);
$.ajax({
url:ctx+"/mp/channel/saveChannel",
data:{channel_type_val:channel_type, groupIds:obj.groupIds, custIds:obj.custIds},
type:'post',
dataType:'json',
success:function(data){
alertModalb(data.retMsg, function(){
if (data.retCode == 0) {
window.location.href = ctx+"/mp/channel/queryChannelList";
}
});
},
error:function(){
alertModalb("系統(tǒng)異常!")
}
});
(2)后臺
String groupIds = request.getParameter("groupIds");
String custIds = request.getParameter("custIds");
String[] str = productIds.split(",");
for (String productid : str) {
}
5.傳list對象
(1)前臺
var channelAreaList = [];
var proObj = {};
proObj.province = area;
proObj.province_name = $("#selectArea").find("option:selected").text();
obj.city = city;
obj.city_name = item.infoName;
channelAreaList.push(proObj);
$.ajax({
url : requestUrl,
type : 'post',
data : {"channelAreaList":JSON.stringify(channelAreaList),"spuCodes":productIds},
dataType:'json',
success : function(data) {
tipRemove();
if(data.status == 0){
window.location.href = ctx+"/channel/queryChannelList";
}else{
alertModalb(data.msg);
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
tipRemove();
alertModalb("保存信息異常档冬,請聯(lián)系管理員!");
}
});
(2)后臺
@ResponseBody
@RequestMapping(value = "/saveAreaData", method = RequestMethod.POST)
public String saveAreaData(HttpServletRequest request, HttpServletResponse response,
@RequestParam(value = "spuCodes",required=true) String spuCodes,@RequestParam(value="channelAreaList", required=true) String channelAreaList){
Map result = new HashMap();
try{
User user = UsermanageUserUtil.getCurrentUser(request);
if(StringUtil.isNotEmpty(channelAreaList) && StringUtil.isNotEmpty(spuCodes)){
String[] spuArr = spuCodes.split(",");
List areaList = JSONObject.parseArray(channelAreaList, ChannelArea.class);
}
6.后臺使用JSONObject對象接受
(1)前臺
var params = {
"enterpriseId": $("#i_enterpriseId").val(),
"type": $(v).attr("type"),
"isRetail": $(v).attr("isRetail")
};
$.ajax({
type: "post",
url: ctx + "/auditDetailDubbo/findAuditDetail",
data: JSON.stringify(params),
dataType: "json",
contentType:"application/json",
success: function(resp){
}
(2)后臺
@ResponseBody
@RequestMapping(value = "/findAuditDetail", method = RequestMethod.POST)
public Map findAuditDetailByEnterpriseIdAndType(HttpServletRequest request, HttpServletResponse response,
@RequestBody JSONObject jsonObj){
int type = jsonObj.getIntValue("type");
int enterpriseId = jsonObj.getIntValue("enterpriseId");
Integer isRetail = jsonObj.getInteger("isRetail");
7.后臺使用JSONArray接受
(1)前臺
var diliveryAreas = [];
$.each($("#deliveryEditDiv a"),function(i,v){
var item = {};
item.enterpriseId = $("#i_enterpriseId").val();
item.province = $(v).attr("data-prov");
item.city = $(v).attr("data-city");
item.district = $(v).attr("data-area");
var o = getAreaName(item.province, item.city, item.district);
item.provinceName = o.provName;
item.cityName = o.cityName;
item.districtName = o.areaName;
diliveryAreas.push(item);
});
$.ajax({
url: ctx + "/deliveryAreaDubbo/saveDft",
data: JSON.stringify(diliveryAreas),
type: 'post',
dataType: "json",
contentType:"application/json",
success: function(data){
if(data.result != "success"){
alertModal("保存失敗");
}
}
});
(2)后臺
@ResponseBody
@RequestMapping(value = "/saveDft", method = RequestMethod.POST)
public Map saveDft(@RequestBody JSONArray deliveryAreas,HttpServletRequest request, HttpServletResponse response){
Map resp = new HashMap();
try {
User currentUser = UsermanageUserUtil.getCurrentUser(request);
String operate = currentUser.getUsername();
String enterpriseId = null;
if (deliveryAreas!=null && !deliveryAreas.isEmpty()) {
JSONObject jsonObject = deliveryAreas.getJSONObject(0);
enterpriseId = jsonObject.getString("enterpriseId");
}
List areaList = new ArrayList();
for(int i=0;i
JSONObject item = deliveryAreas.getJSONObject(i);
UsermanageDeliveryAreaDft deliveryArea = new UsermanageDeliveryAreaDft();
deliveryArea.setEnterpriseId(enterpriseId);
}
}
7.后臺使用jsonstring字符串接受
(1)前臺
var param = {
quaJson:JSON.stringify(params),
isRetail:isRetail
};
$.ajax({
type: "post",
url: ctx + "/qualificationDubbo/saveDft",
data: param,
dataType: "json",
success: function(resp){
if(resp.status=="success"){
initQualificationData();// 刷新數(shù)據(jù)
}
}
});
(2)后臺
@ResponseBody
@RequestMapping(value = "/saveDft", method = RequestMethod.POST)
public Map saveDft(@RequestParam(value="quaJson", required=true) String quaJson,@RequestParam(value="isRetail", required=true) Integer isRetail){
Map result = new HashedMap();
JSONObject jsonObject=JSONObject.parseObject(quaJson);
QualificationRetailDft quaJava = JSONObject.parseObject(quaJson.toJSONString(), QualificationRetailDft.class);
}
8.
后臺使用jsonstring字符串接受
(1)前臺
$.ajax({
type: "POST",
url: ctx + '/receiverAdressDubbo/saveAddressDft',
data: {
receiverAddressJson: JSON.stringify(params).replace(/]*>/gi, "").replace(/<\/pre>/gi, '')
},
dataType: 'json',
success: function(data){
if( data.result == "success" ){
syncFormData(params,formid);
}else{
alertModal("保存失敗");
}
}
});
(2)后臺
@ResponseBody
@RequestMapping("/saveAddressDft")
public Map? saveAddressDft(HttpServletRequest request, HttpServletResponse response,
@RequestParam("receiverAddressJson") String receiverAddressJson){
logger.info("saveAddressDft begin!");
Map resp = new? HashMap();
try {
User user = UsermanageUserUtil.getCurrentUser(request);
List receiverAddressList = JSON.parseObject(receiverAddressJson, new TypeReference>(){});
}
以后有在遇到一些以上方法滿足不了的情況再繼續(xù)更新