Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法

var xmlHttp; //定义变量,用来创建xmlHttp对象

function ajaxfunction(url,onreadystatechangMethod,param){ // 创建xmlHttp,ajax开始

    if(window.XMLHttpRequest){//非IE浏览器及IE7(7.0及以上版本),用xmlHttp对象创建

        xmlHttp=new XMLHttpRequest();

    }else if(window.ActiveXObject){ //IE(6.0及以下版本)浏览器用activexobject对象创建,如果用户浏览器禁用了ActiveX,可能会失败.

        xmlHttp=new ActiveXObject("Microsoft.XMLHttp");

    }

    

    if(xmlHttp){//成功创建xmlHttp

    	param=encodeURI(param);  //URL编辑,解决乱码问题

    	param=encodeURI(param);

        xmlHttp.open("post",url,false); //与服务端建立连接(请求方式post或get,地址,true表示异步)

        xmlHttp.onreadystatechange = onreadystatechangMethod; //指定回调函数

        xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");//post提交设置项

        xmlHttp.send(param); //发送请求   

    }

}


 SpringMVC中的@RequestMapping修饰的方法在正常情况下虽然可以直接在参数列表中声明参数,但如果在Ajax的Post方式提交时是不会取到值的,所以要用最原始的方法获取参数,
 如果参数中有大量数据,最好用new String接收

@RequestMapping(value = "/page/video/videoReply.do")

    public String videoReply(HttpServletRequest request,

            HttpServletResponse response) {

  String strId = request.getParameter("strId");

  String content = new String(request.getParameter("content"));

    try {

            content = java.net.URLDecoder.decode(content, "UTF-8");

        } catch (UnsupportedEncodingException e) {

            e.printStackTrace();

        }

 return null;

} 


你可能感兴趣的:(requestmapping)