JavaScript原生方法如何将值传给controller?

各位老师,请教一个问题:
我使用springmvc架构,前台js方法获得了查询结果单选那条数据对应的ID,然后commit调用controller中api,将向这个ID传递给controller中的一个方法,实现编辑这条数据功能。
请问Javascript原生用法,如何实现commit时将值传递给controller方法?
感谢各位老师指导。

4个回答

用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里
                       执行成功,这里就可以判断是否编辑成功!
             });

phoenix850121
phoenix850121 我知道原因了,谢谢。
大约一年之前 回复
phoenix850121
phoenix850121 js中ajax没有调用controller方法,请问为什么?
大约一年之前 回复
phoenix850121
phoenix850121 回复: js:
大约一年之前 回复
qq_23126581
渊渟无迹静涛君 回复: 事、是的
大约一年之前 回复
phoenix850121
phoenix850121 回复: 最后问下, success:function(data),中的data接受的是controller里的返回值吗?
大约一年之前 回复
phoenix850121
phoenix850121 回复: 太感谢了。我晚上回去试试
大约一年之前 回复
qq_23126581
渊渟无迹静涛君 回复: 两种,一时直接再你的contorller方法里写,比如:public String update(String selectedId"); 你直接用就行。第二种就是在方法里写 String selectedId= request.getParameter("selectedId");
大约一年之前 回复
phoenix850121
phoenix850121 谢谢,请问controller如何获取data传的参数值?
大约一年之前 回复

没太懂你的意思,是前台已经确定一个值要传到后台吗?如果这样直接表单提交就行了啊

phoenix850121
phoenix850121 例如:function edit(){ var selectedId = '6'; commit....提交调用controller中方法。 },selectedId 这个值如何传给controller方法?
大约一年之前 回复

原生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; 
  } 
}

phoenix850121
phoenix850121 例如:function edit(){ var selectedId = '6'; commit....提交调用controller中方法。 },selectedId 这个值如何传给controller方法?
大约一年之前 回复

$.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方法,请问为什么?
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!