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;
}