AJAX传给SpringMVC字符串与JAVA后台处理问题
在js代码中有如下ajax:
$.ajax({ type:"POST", url:"/user_role/roleForOneUser", data:{"id":$scope.userViewInfo.id,"roleList":this.roleArray}, contentType:"application/x-www-form-urlencoded", dataType:"json", success:function(data){ console.log(data); $scope.$apply(function(){ }); } });其中,this.roleArray如果为list类型无法传给后台(跟配置有关,暂不考虑),故转换为字符串用减号(“-”)进行分隔。
例如:this.roleArray = "0-2-3-4-5-12-32-1-";
后台java程序接收到这个字符串后将其变换成list对象。采用如下方法:
package com.whut.work.base.util;
import java.util.ArrayList;
import java.util.List;
/**
* Created by zouy on 2016/12/29.
*/
public class JavaStringUtil{
private static int counter = 0;
private static List<Integer> listInt = new ArrayList<Integer>();
//判断字符串str含有多少个substr子字符串
public static int stringNumbers(String str,String substr) {
if (str.indexOf(substr) == -1) {
return counter;
}
else if(str.indexOf(substr) != -1) {
counter++;
stringNumbers(str.substring(str.indexOf(substr)+substr.length()),substr);
}
return counter;
}
//将string字符串(用"-"隔开的)变成list集合
public static List<Integer> stringToList(String str,String substr) {
if (str.indexOf(substr) == -1) {
return listInt;
}
else if(str.indexOf(substr) != -1) {
listInt.add(Integer.parseInt(str.substring(0, str.indexOf(substr))));
stringToList(str.substring(str.indexOf(substr)+substr.length()),substr);
}
return listInt;
}
}
新建一个Class,用来测试以上方法,举个例子如下: package com.whut.work.base.util;
import java.util.List;
import com.whut.work.base.util.TestString;
public class TestString {
public static void main(String[] args) {
String str = "0-2-3-4-5-12-32-1-";
String substr = "-";
List<Integer> listInt = JavaStringUtil.stringToList(str,substr);
System.out.println(listInt);
}
}
运行以上方法,可以看到控制台输出如下: [0, 2, 3, 4, 5, 12, 32, 1]
证明转换成功,然后我们进行数据库操作。