你传递json的时候要先把json编码后放到路径上,到后台取到值在解码回原来的字符串就行了
用js中的global 全局函数encodeURI(URIstring)进行编码。
java.net.URLDecoder.decode(nameOrKeyword, "UTF-8")解码。

解决方案 »

  1.   

    你可以吧数据存放到request 里
      

  2.   

    modelMap.addAttribute("SYSTEM_NAME", SessionUtils.getInstance(request).getSysConfigItem(JQuickConstant.SYSTEM_NAME));
    modelMap.addAttribute("COPYRIGHT_INFO", SessionUtils.getInstance(request).getSysConfigItem(JQuickConstant.COPYRIGHT_INFO));
    return new ModelAndView("jquick/login/loginpage_"+loginPage,modelMap);
      

  3.   

    确实是由于json字符串导致的,因为json中有“:”。
    new ModelAndView("redirect:/"+legalFile+".do?json="+json);通过这一句可以看出,spring的ModelAndView在解析参数的时候会将“:”前后的字符串作为解析的变量,而你的json字符串中的“:”前后的字符串根本就不符合解析规则,所以报错。
    解决方法:将json字符串中的“:”替换为别的符号,接受的时候再将它替换为“:”
      

  4.   


    请教:
    从前台传过来时,没有问题,显然,和前台无关,这点可以判断
    所以,有如下疑惑:
    1、json串在new ModelAndView("redirect:/"+legalFile+".do?json="+json);报错,
    于是,我采用json = json.replace(':','_');
    将所有的':'转换成'_' ,
    但是,依然报错:exception
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Model has no value for '"userName"_"","userPasswd"_"","userSalary"_"","userBonus"_"","userDepart"_"","userRole"_"ROLE_COMMON","userGroup"_"GROUP_COMMON","userFunOpt"_"createRole"'
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:927)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    root cause
    java.lang.IllegalArgumentException: Model has no value for '"userName"_"","userPasswd"_"","userSalary"_"","userBonus"_"","userDepart"_"","userRole"_"ROLE_COMMON","userGroup"_"GROUP_COMMON","userFunOpt"_"createRole"'
    org.springframework.util.Assert.notNull(Assert.java:112)
    org.springframework.web.servlet.view.RedirectView.replaceUriTemplateVariables(RedirectView.java:335)
    ......................
    请指教
      

  5.   


    请教:
    从前台传过来时,没有问题,显然,和前台无关,这点可以判断
    所以,有如下疑惑:
    1、json串在new ModelAndView("redirect:/"+legalFile+".do?json="+json);报错,
    于是,我采用json = json.replace(':','_');
    将所有的':'转换成'_' ,
    但是,依然报错:exception
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Model has no value for '"userName"_"","userPasswd"_"","userSalary"_"","userBonus"_"","userDepart"_"","userRole"_"ROLE_COMMON","userGroup"_"GROUP_COMMON","userFunOpt"_"createRole"'
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:927)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    root cause
    java.lang.IllegalArgumentException: Model has no value for '"userName"_"","userPasswd"_"","userSalary"_"","userBonus"_"","userDepart"_"","userRole"_"ROLE_COMMON","userGroup"_"GROUP_COMMON","userFunOpt"_"createRole"'
    org.springframework.util.Assert.notNull(Assert.java:112)
    org.springframework.web.servlet.view.RedirectView.replaceUriTemplateVariables(RedirectView.java:335)
    ......................
    请指教
    之前那是我的猜测,经过测试,是大括号的原因,new ModelAndView("redirect:/"+legalFile+".do?json="+json);在参数中存在{},spring会报错。所以啊,楼主,我之前讲的是错误的。我自己测试过,日要不存在成对的大括号{}就可以,所以这里你只要将json中的大括号去掉就行了
      

  6.   


    请教:
    从前台传过来时,没有问题,显然,和前台无关,这点可以判断
    所以,有如下疑惑:
    1、json串在new ModelAndView("redirect:/"+legalFile+".do?json="+json);报错,
    于是,我采用json = json.replace(':','_');
    将所有的':'转换成'_' ,
    但是,依然报错:exception
    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalArgumentException: Model has no value for '"userName"_"","userPasswd"_"","userSalary"_"","userBonus"_"","userDepart"_"","userRole"_"ROLE_COMMON","userGroup"_"GROUP_COMMON","userFunOpt"_"createRole"'
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:927)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:822)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    root cause
    java.lang.IllegalArgumentException: Model has no value for '"userName"_"","userPasswd"_"","userSalary"_"","userBonus"_"","userDepart"_"","userRole"_"ROLE_COMMON","userGroup"_"GROUP_COMMON","userFunOpt"_"createRole"'
    org.springframework.util.Assert.notNull(Assert.java:112)
    org.springframework.web.servlet.view.RedirectView.replaceUriTemplateVariables(RedirectView.java:335)
    ......................
    请指教
    之前那是我的猜测,经过测试,是大括号的原因,new ModelAndView("redirect:/"+legalFile+".do?json="+json);在参数中存在{},spring会报错。所以啊,楼主,我之前讲的是错误的。我自己测试过,日要不存在成对的大括号{}就可以,所以这里你只要将json中的大括号去掉就行了谢谢,试了试,有效也!!!