一个小型购物网用的纯struts2来做的,分前后台,其中前台有购物车的相关页面..现在的需求是在客户或者管理员没有登录的情况下,客户如果点击'我的购物车'则应该跳转到提示登录的页面,后台如果管理员没登录同理需要跳到管理员登录页面..我看了下资料..想用自定义的interceptor来拦截.但是我的页面全是用action来访问的..只有登陆页面可以以.jsp来访问...所以我不知道我这里应该是用interceptor来拦截jsp还是action...本来以是刚学struts2所以这里不怎么明白...或者在实际开发中有更好的解决方法也行..请解答...

解决方案 »

  1.   

    去查下
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.AbstractInterceptor;网上有用拦截器做登入画面 找找 很多的
      

  2.   

    LZ还没明白Struts2为什么要这么设计吧.?  也可以说你学这个东西没怎么看源码
    Struts2核心过滤器StrutsPrepareAndExecuteFilter拦截/*的请求, 这个过滤器会做几件事
    1:产生Action的环境(包括OGNL Context) 2:看看是否是自己要拦截的请求,如果不是就放行,否则处理
    3:如果是处理的话,  会产生Action的代理,  那么我们都知道代理就是在执行业务方法直接去执行某些代码,Interceptor就是这个某些方法, 所以Interceptor是对Action起作用的.!我们在struts.xml文件中配置action的时候 也需要对我们的action需要哪些interceptor进行相应的配置, 为什么我们有的没配.? 是因为我们的package继承了struts-default,
    而在struts-default.xml文件中,配置了默认的拦截器栈
      

  3.   

    Interceptor不拦截jsp, 想拦截JSP用filter