Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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 在行动之前加载对象,并在行动和freemaker模块中共享这些对象,可能吗?_Java_Spring_Spring Mvc_Freemarker - Fatal编程技术网

Java 在行动之前加载对象,并在行动和freemaker模块中共享这些对象,可能吗?

Java 在行动之前加载对象,并在行动和freemaker模块中共享这些对象,可能吗?,java,spring,spring-mvc,freemarker,Java,Spring,Spring Mvc,Freemarker,假设登录用户点击url: www.example.com/forum/234 在SpringMVC操作启动之前,我想加载用户对象、用户权限和论坛对象 现在我想通过此请求共享这些对象。因此,其他类可以在当前请求中查看用户、权限和论坛对象 如果自定义freemarker模块也可以引用这些对象(如果这些对象可用),这可能会很酷 这是可能的吗?首先,考虑使用Spring Security,它的过滤器做了你需要的一切。 如果要手动完成所有操作,则至少有两个选项: -使用servlet过滤器 -使用spr

假设登录用户点击url:

www.example.com/forum/234
在SpringMVC操作启动之前,我想加载用户对象、用户权限和论坛对象

现在我想通过此请求共享这些对象。因此,其他类可以在当前请求中查看
用户
权限
论坛
对象

如果自定义freemarker模块也可以引用这些对象(如果这些对象可用),这可能会很酷


这是可能的吗?

首先,考虑使用Spring Security,它的过滤器做了你需要的一切。

如果要手动完成所有操作,则至少有两个选项: -使用servlet过滤器 -使用spring处理程序拦截器()

在这两种情况下,都将此数据存储在请求属性中

另一个选项是创建具有请求范围的bean,该bean将存储您的数据


对于Freemarker,您必须提供自己的FreeMarkerViewSolver子类,它将在requiredViewClass()方法中返回FreeMarkerView的子类。在这个FreeMarkerView子类的exposeHelpers()方法中添加您的对象。

不需要清理请求属性,正如我不久前所了解的:)