spring mvc @ResponseBody json乱码

1,采用jackjson来做json处理,导入包: jackson-core-lgpl-1.6.9.jar 和 jackson-mapper-lgpl-1.6.9.jar

2,修改spring-mvc.xml

<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<!--json转换器-->
				<bean
					class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
					<property name="supportedMediaTypes">
						<list>
							<value>text/html;charset=UTF-8</value>
						</list>
					</property>
				</bean>
			</list>
		</property>
		<property name="cacheSeconds" value="0"/>
		
	</bean>


 

3,在controller方法中返回Map类型数据,Spring自动转换为json

例如:

	@RequestMapping("loginCheck")  
	@ResponseBody
	public Map<String, Object> loginCheck(String username, String password,
			HttpServletRequest request, HttpServletResponse response){
		Map<String, Object> json = new HashMap<String, Object>();
		try {
			if (!request.getMethod().equals("POST")) {
				json.put("message", "支持POST方法提交!");
			}
			// 验证用户账号与密码是否正确
			User users = userService.findByUserName(username);
			if (users == null || !users.getPassword().equals(password)) {
				json.put("message", "用户或密码不正确!");
			} else {
				Authentication authentication = myAuthenticationManager
						.authenticate(new UsernamePasswordAuthenticationToken(
								username, password));
				SecurityContext securityContext = SecurityContextHolder
						.getContext();
				securityContext.setAuthentication(authentication);
				HttpSession session = request.getSession(true);
				session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
				// 当验证都通过后,把用户信息放在session里
				request.getSession().setAttribute(USER_SESSION_KEY, users);
				json.put("message", "success");
				json.put("userid", users.getId());
			}
		} catch (AuthenticationException ae) {
			json.put("message", "登录异常,请联系管理员!");
		}
		return json;
	}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值