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

Jquery代码:

$.ajax({
		type: 'POST',
		url: 'user/login',
		data: JSON.stringify(datas),
		contentType: 'application/json',
		success: function(data){
			if('' != data && null != data)
				alert(data);
			else
				alert('请检查你的账号和密码是否正确...');
		}
	});

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)
	@ResponseBody
	public 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;
		
	}
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,彻底解决

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值