action重定向到frameset页面指定target属性
2017-02-16 00:50
176 查看
后台重定向传递frameset页面target属性
一、问题描述
使用struts2的项目,在frameset前端页面的顶部窗口有个注销登录的链接,点击该链接,后台将清除session保存的用户信息,并且将页面重定向到登录页面。二、尝试的无效方法
2.1 struts2的result标签
使用struts2的result标签,登录页面始终只出现在页面顶部,其他部位不变<!--无效代码--> <result name="logout_success" type="dispatcher">/login.jsp</result>
或者
<!--无效代码--> <result name="redirect" type="dispatcher">/login.jsp</result>
2.2 action中直接重定向
在action中获取到Servlet的response对象,使用sendRedirect()方法,问题仍然没办法解决。//无效代码 ServletActionContext.getResponse().sendRedirect("login.jsp");
三、发现原因
frameset的target属性是用于指定页面跳转的方式,比如:属性值 | 描述 |
---|---|
_blank | 默认,在新窗口中打开被链接文档 |
_self | 在相同的框架中打开被链接文档 |
_parent | 在父框架集中打开被链接文档 |
_top | 在整个窗口中打开被链接文档 |
framename | 在指定的框架中打开被链接文档 |
target是客户端的属性,因此只能在客户端指定,和服务器端没有任何关系,所以servlet和struts2都没法直接指定target属性。
四、解决办法
如果一定要后台控制窗口的显示方式,只能通过间接的方式。通过使用servlet的response方法想页面直接回写javascript代码,回写完成后,页面会立即执行js代码。js是客户端的语言,因此可以控制target值。//有效的解决方案 HttpServletResponse response = ServletActionContext.getResponse(); response.getWriter().write("<script>window.open('login.jsp','_top')</script>");
相关文章推荐
- 为form指定target属性值,就可以使跳转页面在相应的frameset中显示
- 动态结果配置:struts.xml中,<result>属性的type配置之redirectAction(请求重定向到指定的Action)
- from表单传值到页面,并在iframe中显示该页面,通过form的target属性指定iframe
- 为Action的属性注入值两种方式,jsp页面访问该属性值
- 当RowDeleting不执行时,如果采用的是分离指定的时候检查页面的EnableViewState属性
- 转载: js jquery 获取当前页面的url,获取frameset中指定的页面的url(有修改)
- Struts2(9):为<action>指定method属性
- xml中的target属性——在主页面的某个区域显示其它页面
- struts 页面调用Action的指定方法并传递参数
- Struts2中action重定向跳转到jsp页面两种配置方式
- Ruby on Rails,在Controller中指定页面重定向
- Action属性注入值和指定Struts 2处理的请求
- 设置iframe指定页面某控件属性
- js jquery 获取当前页面的url,获取frameset中指定的页面的url
- ASP.NET查询页面设置form的action属性只弹出一个页面,并且每次将页面设置到最前
- frameset框架中session失效后怎样重定向到登录页面
- struts2指定欢迎页面为action请求
- 后台脚本实现页面在target中的打开,以及target属性
- target属性及W3C标准下在新窗口打开页面的方法
- jsp 页面获取action 属性的方法