各位老师,请教一个问题:
我使用springmvc架构,前台js方法获得了查询结果单选那条数据对应的ID,然后commit调用controller中api,将向这个ID传递给controller中的一个方法,实现编辑这条数据功能。
请问Javascript原生用法,如何实现commit时将值传递给controller方法?
感谢各位老师指导。
用ajax,将你的点击按钮绑定事件,然后时间里写ajax方法。
例如:
$.ajax({
url:"chuli.php", //处理页面的路径 就是你controller里的方法 后台方法记得加 @ResponseBody
data:{"selectedId":"6"}, //要提交的数据是一个JSON 6这个可以根据你需要数据来替换
type:"POST", //提交方式
dataType:"TEXT", //返回数据的类型
//TEXT字符串 JSON返回JSON XML返回XML
success:function(data){ //回调函数 ,成功时返回的数据存在形参data里
执行成功,这里就可以判断是否编辑成功!
});
没太懂你的意思,是前台已经确定一个值要传到后台吗?如果这样直接表单提交就行了啊
原生js ajax ,但是一般都用js框架 jQuery,什么的
function ajax(){
var ajaxData = {
type:arguments[0].type || "GET",
url:arguments[0].url || "",
async:arguments[0].async || "true",
data:arguments[0].data || null,
dataType:arguments[0].dataType || "text",
contentType:arguments[0].contentType || "application/x-www-form-urlencoded",
beforeSend:arguments[0].beforeSend || function(){},
success:arguments[0].success || function(){},
error:arguments[0].error || function(){}
}
ajaxData.beforeSend()
var xhr = createxmlHttpRequest();
xhr.responseType=ajaxData.dataType;
xhr.open(ajaxData.type,ajaxData.url,ajaxData.async);
xhr.setRequestHeader("Content-Type",ajaxData.contentType);
xhr.send(convertData(ajaxData.data));
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if(xhr.status == 200){
ajaxData.success(xhr.response)
}else{
ajaxData.error()
}
}
}
}
function createxmlHttpRequest() {
if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
}
function convertData(data){
if( typeof data === 'object' ){
var convertResult = "" ;
for(var c in data){
convertResult+= c + "=" + data[c] + "&";
}
convertResult=convertResult.substring(0,convertResult.length-1)
return convertResult;
}else{
return data;
}
}
$.ajax({
url:"editNews.api", //处理页面的路径 就是你controller里的方法 后台方法记得加 @ResponseBody
data:{"items_id":items_id,"imageLink":imageLink}, //要提交的数据是一个JSON 6这个可以根据你需要数据来替换
type:"POST", //提交方式
dataType:"TEXT", //返回数据的类型
//TEXT字符串 JSON返回JSON XML返回XML
success:function(message){
//回调函数 ,成功时返回的数据存在形参data里执行成功,这里就可以判断是否编辑成功!
}
});
controller:
@RequestMapping(value = "editNews", method = RequestMethod.POST)
public ModelAndView editNews(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 获取表单提交数据
String items_id = request.getParameter("items_id");
String imageLink = request.getParameter("imageLink");
js中ajax没有调用controller方法,请问为什么?