您的位置:首页 > 编程语言 > Java开发

AJAX传给SpringMVC字符串与JAVA后台处理问题

2016-12-29 11:37 405 查看
在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]

证明转换成功,然后我们进行数据库操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息