phoenix850121
phoenix850121
采纳率56.8%
2018-09-27 02:01 阅读 1.6k

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

4条回答 默认 最新

  • 已采纳
    qq_23126581 郭老师的小迷弟雅思莫了 2018-09-27 03:01

    用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里
                           执行成功,这里就可以判断是否编辑成功!
                 });
    
    
    点赞 评论 复制链接分享
  • hu837389340 hu837389340 2018-09-27 02:12

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

    点赞 评论 复制链接分享
  • moer4372 meweiweifeng 2018-09-27 02:43

    原生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 2018-09-27 12:44

    $.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方法,请问为什么?
    
    点赞 评论 复制链接分享

相关推荐