通过JSON字符串将前台数据传递至后台,且前台数据是动态变化的,当点击提交时才将数据传递至后台:
JSON字符串形式:var json = '{"key1":"value1","key2":"value2"}'
在js里使用map存放动态变化的数据:
在js中使用map:
var map = {};
function change(key,value){
map[key] = value;
}
function submit(){
var json = JSON.stringify(map)
document.getElementById("form").action="<%=path%>/Controller?json="+json;
document.getElementById("form").submit();
}
其中,"form"为表单的id属性,change(key,value)为存放数据的响应函数。
在后台Controller里接受json:
String json = request.getParameter("json");
JSONObject js = new JSONObject();
js = JSONObject.fromObject(json);
Iterator it = js.keys();
//遍历所有的json内容
while(it.hasNext()){
String key = it.next().toString();
String value = js.getString(key);
}
PS:1、需要注意的是,想要使用此种方法,需要引入几个jar包:commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons- logging-1.1.1.jar、ezmorph-1.0.6.jar、json-lib-2.4-jdk15.jar,并且要保证这几个jar包的版本一致。
2、在WEB-INF下的lib目录下也要加入这几个jar包