SpringMVC:一个方法中定义的HttpSession对另一个方法不可用
我在SpringMVC项目中实现的Httpsession遇到了一个问题 首先,在用户成功登录后,我将在loginAuthenticationcontroller中获取Httpsession对象,并使用我想要的名称和值设置属性。(如下图所示) A.java控制器文件, 一切就绪后,控制器将用户导航到主页面,主页面能够访问所有定义的变量,而不会出现问题。(下图显示了映射到mainPage的控制器) A.java控制器文件, 在主页的导航菜单中,我单击所选内容以指示我添加manager网页。(以下显示了链接)SpringMVC:一个方法中定义的HttpSession对另一个方法不可用,spring,spring-boot,spring-mvc,httpsession,Spring,Spring Boot,Spring Mvc,Httpsession,我在SpringMVC项目中实现的Httpsession遇到了一个问题 首先,在用户成功登录后,我将在loginAuthenticationcontroller中获取Httpsession对象,并使用我想要的名称和值设置属性。(如下图所示) A.java控制器文件, 一切就绪后,控制器将用户导航到主页面,主页面能够访问所有定义的变量,而不会出现问题。(下图显示了映射到mainPage的控制器) A.java控制器文件, 在主页的导航菜单中,我单击所选内容以指示我添加manager网页。(以下显示
因此,我不确定我的代码有什么问题,并且没有显示错误消息 我已经通过使用HttpServletRequest而不是HttpSession解决了这个问题。 现在,我的会话将不会丢失,甚至不会重定向或导航到JSP中的任何页面 大概是这样的:
@RequestMapping("/renderview", method = RequestMethod.GET)
@Controller
public class TestController {
@RequestMapping(method = RequestMethod.GET)
public String myMethod(HttpServletRequest request)
{
request.getSession().setAttribute("mySession", "XXX");
return "jspview";
}
}
参考:将代码添加为文本而不是图像
@RequestMapping(value = "/mainPage", method = RequestMethod.GET)
public String renderMainPageView(Model model, HttpServletRequest request) {
if(request.getAttribute(SessionAttribute.AttributeName.LOGIN_CHECK.toValue()) != null) {
model.addAttribute(SessionAttribute.AttributeName.LOGIN_ACC_ID.toValue(),
request.getAttribute(SessionAttribute.AttributeName.LOGIN_ACC_ID.toValue()));
model.addAttribute(SessionAttribute.AttributeName.LOGIN_ACC_NAME.toValue(),
request.getAttribute(SessionAttribute.AttributeName.LOGIN_ACC_NAME.toValue()));
model.addAttribute(SessionAttribute.AttributeName.LOGIN_ACC_ROLE.toValue(),
request.getAttribute(SessionAttribute.AttributeName.LOGIN_ACC_ROLE.toValue()));
model.addAttribute(SessionAttribute.AttributeName.LOGIN_DATE.toValue(),
request.getAttribute(SessionAttribute.AttributeName.LOGIN_DATE.toValue()));
return "mainPage";
}else {
model.addAttribute("systemAccount", new SystemAccount());
return "index";
}
}
<a href="addManager" target="ifrm" >Add New Account</a>
@RequestMapping(value = "/addManager", method = RequestMethod.GET)
public String renderAddManagerView(Model model, HttpSession httpSession) {
if(httpSession.getAttribute(SessionAttribute.AttributeName.LOGIN_CHECK.toValue()) != null) {
model.addAttribute("manager", new Manager());
model.addAttribute(FormSelectionValue.FormSelectionAttributeName.COUNTRY_SELECTION.toValue(), FormSelectionValue.COUNTRY_SELECTION_LIST);
model.addAttribute(FormSelectionValue.FormSelectionAttributeName.GENDER_SELECTION.toValue(), FormSelectionValue.GENDER_SELECTION_LIST);
return "addManager";
}else {
model.addAttribute("systemAccount", new SystemAccount());
return "index";
}
}
@RequestMapping("/renderview", method = RequestMethod.GET)
@Controller
public class TestController {
@RequestMapping(method = RequestMethod.GET)
public String myMethod(HttpServletRequest request)
{
request.getSession().setAttribute("mySession", "XXX");
return "jspview";
}
}