项目中有这样一个场景,mvc和aop有单独的配置文件。登陆用户只是对前台有反馈。后台没有记录当前用户的任何信息。使用AOP做用户日志时遇到麻烦了。我希望能拿到当前登陆用户的ID,当前登陆的IP。由于不清楚spring 的上下文管理。希望能有一个解决方案。谢谢。
我的思路是:
(1)写到配置文件里。
basePath=/blog/
(2)spring注入到一个自己的属性类中。
<!--spring的配置文件-->
<bean id="beanConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:conf.properties</value>
</property>
</bean>
<!--spring的配置文件-->
<bean id="myConfig" class="com.slowoo.blog.config.MyConfig">
<property name="basePath" value="${basePath}" />
</bean>
(3)创建一个拦截器,在拦截器中,将这个参数放入session。
<!--spring的配置文件-->
<mvc:interceptors>
<!-- 每个页面都要走的一个拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.slowoo.blog.interceptor.BaseInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
/*BaseInterceptor类中部分代码*/
@Resource
private MyConfig myConfig;
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
session.setAttribute("basePath", myConfig.getBasePath()); // 每个页面,都设置一下基础路径
return true;
}
(4)就可以在jstl中自由使用了。
<img src="${basePath}/img/logo.jpg" />
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。