spring mvc @ResponseBody json乱码

来源:互联网 发布:iris数据集主成分分析 编辑:程序博客网 时间:2024/06/05 09:00

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

2,修改spring-mvc.xml

<beanclass="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="messageConverters"><list><!--json转换器--><beanclass="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")  @ResponseBodypublic 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
原创粉丝点击