[code="java"]
@Controller
@RequestMapping("/user")
@SessionAttributes(LoginConstants.CURRENT_USER)
public class UserContorller {
private UserService userService;
public UserService getUserService() {
return userService;
}
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
@ResponseBody
@RequestMapping( value="login" ,method=RequestMethod.GET)
public String login(LoginForm loginForm,ModelMap modelMap){
UserEntity userEntity = new UserEntity();
userEntity.setName(loginForm.getName());
userEntity.setPassword(loginForm.getPassword());
userEntity = userService.login(userEntity);
if(null != userEntity){//登录成功
modelMap.addAttribute(LoginConstants.CURRENT_USER, userEntity);
return "ok";
}else{//登录失败
return "error";
}
}
}
[/code]
报错如下错误:
[code="java"]
严重: Servlet.service() for servlet springmvc threw exception
java.lang.IllegalStateException: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2400)
at org.apache.catalina.connector.Request.getSession(Request.java:2120)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
[/code]
@ResponseBody
@RequestMapping( value="login" ,method=RequestMethod.GET)
public String login(LoginForm loginForm,ModelMap modelMap){
UserEntity userEntity = new UserEntity();
userEntity.setName(loginForm.getName());
userEntity.setPassword(loginForm.getPassword());
userEntity = userService.login(userEntity);
if(null != userEntity){//登录成功
modelMap.addAttribute(LoginConstants.CURRENT_USER, userEntity);
return "ok";
}else{//登录失败
return "error";
}
}
请将方法的参数加上该为public String login(HttpSession session, LoginForm loginForm,ModelMap modelMap)
你没有看到吗 在response的时候没有办法创建Session
if(null != userEntity){//登录成功
[color=red][b]在此处创建Session试试[/b][/color]
modelMap.addAttribute(LoginConstants.CURRENT_USER, userEntity);
return "ok";
}else{//登录失败
return "error";
}