在打开特定JSP之前检查会话中的值

时间:2014-01-18 16:29:29

标签: java spring jsp model-view-controller controller

我想在打开特定的JSP页面之前检查会话中的值是否为null(authentification.jsp是映射的authentification.html并由AuthentificationController.java控制) 如果该值为null,我希望将用户重定向到其他页面,否则我希望他留在该页面中 我找不到解决方案,因为在控制器中我只有formBackingObject或onSubmit方法

1 个答案:

答案 0 :(得分:0)

我假设您使用Spring 3.x,但另一方面,它看起来像是使用旧的Spring 2.0 (Simple)FormController

真的首先学习如何使用Spring 3.x基于注释的控制器和控制器方法。 (例如https://spring.io/guides/gs/serving-web-content/

回到你的问题:

要在Spring 3.x基于注释的控制器方法中获取HttpSession,只需向控制器方法添加类型HttpSession的属性:

@Controller
public class SomeController {

    @RequestMapping("/test")
    public ModelAndView example(@RequestParam("name") String whatEver, ..., HttpSession session) {

        if (session.getAttribute("theVarialbe") != null) {
           return new ModelAndView(new RedirectView("somePage.html", true));
        } else {           
           Model model = new Model();
           return new ModelAndView("myJsp", model);        
        }
    }

}