遇到一个令人头疼的问题:
 
 假如有三个页面,一个登录页面。 如果用户是按照正常顺序登录的情况下,可以随意操作其他的三个页面。
 但是,如果用户先进入页面B,然后操作,其中有一个操作是必须得登录成功后才可以的,那么,用户这时就必须得登录了,
 当用户确定要登录的情况下,页面跳转到登录页面,实现登录操作,当登录成功后,这时,怎样才能让登录页面再跳转到刚才
 未完成操作的B页面? 我用的技术是S2SH,原先的登录Action已经设置,在成功的情况下登录到A页面。所以,我现在就是想不通怎样才能完成上面 
 的问题,还请各位解救 为了清楚起见,我在写一个简单的流程:  正常情况: Login_page ——(Success)> A_page or B_page Or C_page;
  非正常情况: B_page --(要求登录)> Login_page --(Success)> B_page   然后可以随意操作: A_page or B_page or C_page  不知道以上说的是否明白,如果有不明白的地方,还请各位包含

解决方案 »

  1.   

    在非正常登录时跳转过去的Login Page获取跳过来的URL  或者 Action Method  然后登录之后在重定向会原来的页面或者转向原来的页面
      

  2.   

    在B页面跳转到登陆页面的时候,传递url过去。
    然后登陆后,跳转到指定url的页面
      

  3.   

     恩, 你说的是这样么:request.setAttribute("URL", basePath + "admin/user/userLogin.nl");
     然后我后台获取这个URL,成功的话就重定向到它,对么?
     但是还有个问题,因为我用的是Struts2,在Action类中必须得有个返回值,成功的话就返回SUCCESS,在对应的struts.xml配置文件中也得有相应的配置结果。
    如果我用上面的方法重定向的话,那配置文件中的结果又该怎么写呢?
      

  4.   

    在struts2中,可以使用拦截器,将url写到session中,然后重定向到登录页,登录完成时先在session中查找url,如果有,将其删除,再重定向到url。
      

  5.   

    应该就是传递那个url,然后在登录的action中定义一个变量url,并提供get和set方法,然后struts.xml中配置
     <result name="success" type="redirect">${url}</result>
      

  6.   


      那应该在哪里设置这个url的值呢?是在页面么?如果是在页面的话,那我就得引入拥有这个url属性的类,这时,我是该new一个这个类的实例对象呢,还是怎么办?
     或者说你有其他好办法? 能不能将你的想法说具体点,谢谢
      

  7.   

    好了, 我已经完成了。 虽然和你们说的还是有些不同,但是感觉5楼的答案还是和我比较相似,我没有用get and set 方法,只是这样设置<result name="success" type="redirect" />,后台直接用response设置重定向即可。