Maven+SpringMVC+Mybatis+ajax:后台传值到前台中文出现问号乱码问题

来源:互联网 发布:淘宝自动回复内容 编辑:程序博客网 时间:2024/05/16 14:58
Jquery代码:
$.ajax({type: 'POST',url: 'user/login',data: JSON.stringify(datas),contentType: 'application/json',success: function(data){if('' != data && null != data)alert(data);elsealert('请检查你的账号和密码是否正确...');}});

web.xml代码:

<!-- 字符过滤器 -->    <filter>      <filter-name>encodingFilter</filter-name>      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>      <init-param><!-- 针对request -->        <param-name>encoding</param-name>        <param-value>UTF-8</param-value>    </init-param>    <init-param><!-- 针对response -->         <param-name>forceEncoding</param-name>        <param-value>true</param-value>    </init-param>  </filter>    <filter-mapping>      <filter-name>encodingFilter</filter-name>      <url-pattern>/*</url-pattern>    </filter-mapping>  


spring-servlet.xml代码:

<!-- 配置自动扫描:解决中文乱码问题 --><mvc:annotation-driven>     <mvc:message-converters>           <bean class="org.springframework.http.converter.StringHttpMessageConverter">               <property name="supportedMediaTypes">                   <list>                       <value>application/json;charset=UTF-8</value>                       <value>text/html;charset=UTF-8</value>                   </list>               </property>           </bean>       </mvc:message-converters>     </mvc:annotation-driven>
Controller代码:

@RequestMapping(value = "login", method = RequestMethod.POST)@ResponseBodypublic String login(@RequestBody String data,HttpServletResponse response){UserInfo user = gson.fromJson(data, UserInfo.class);map.put("loginname", user.getLoginname());map.put("pwd", user.getPwd());user = service.login(map);response.setCharacterEncoding("UTF-8");                response.setContentType("text/html;charset=UTF-8");if(null != user)return gson.toJson(user);return null;}
OK,彻底解决

阅读全文
0 0
原创粉丝点击