Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC-会话属性-应该作为ModelAttribute传递给所有控制器吗_Java_Spring_Session_Spring Mvc - Fatal编程技术网

Java SpringMVC-会话属性-应该作为ModelAttribute传递给所有控制器吗

Java SpringMVC-会话属性-应该作为ModelAttribute传递给所有控制器吗,java,spring,session,spring-mvc,Java,Spring,Session,Spring Mvc,Am@SessionAttributes用于维护SpringMVC 比如说,@SessionAttribute(“用户”) 当前,我正在将对象作为ModelAttribute传递到所有控制器中,这需要使用SessionObject“user”类似于 这是唯一的办法吗 或 还有别的办法吗?这样,我就可以拥有一个基本控制器,它可以通过扩展基本控制器来返回会话对象。我在一些项目中使用的是: String user = (String) hsr.getSession().getAttribute("us

Am
@SessionAttributes
用于维护SpringMVC

比如说,
@SessionAttribute(“用户”)

当前,我正在将对象作为ModelAttribute传递到所有控制器中,这需要使用SessionObject“user”类似于

这是唯一的办法吗


还有别的办法吗?这样,我就可以拥有一个基本控制器,它可以通过扩展基本控制器来返回会话对象。

我在一些项目中使用的是:

String user = (String) hsr.getSession().getAttribute("user");

如果您正在寻找某种身份验证,我建议您开始使用spring security或其他身份验证机制,这些机制可以根据角色或身份验证状态筛选页面。

不确定您的确切要求是什么,但是,如何创建一个过滤器/拦截器,从会话读取值并将其存储在ThreadLocal中,稍后控制器可以访问该ThreadLocal?需要访问SessionAttributes的控制器需要添加注释,如下所示

@Controller
@SessionAttributes({"user"})
public class Controller {
   .............
}

那很好!!!我在问,我是否应该在任何地方反复地把它作为一个论点来传递?不,你也没有。但根据我的经验,出于安全原因,我不得不这样做,因为我不想获取其他用户的数据。会话允许我访问该用户的唯一数据。请讲点道理
@Controller
@SessionAttributes({"user"})
public class Controller {
   .............
}