有谁能告诉我如何使用Struts转发或重定向页面?
我正在检查每个jsp中的会话是否为空,并且如果为null则要重定向。我可以使用简单的jsp:forward或response.sendRedirect()执行此操作,但我想重定向到我在struts.xml中声明的struts2操作。我尝试将动作名称放在上面提到的标签和方法中,但它没有用。
if(session.getAttribute("user")!=null)
response.sendRedirect("loginAction");
无论如何都要这样做。我不能直接调用.jsp,因为我在我的web.xml中为* .jsp url模式添加了一个安全约束。所以我想要使用操作向前或重定向。有什么帮助吗?
2 个答案:
答案 0 :(得分:3)
最好在Filter
或Interceptor
中进行检查。 This answer对类似的问题可能会有所帮助。
答案 1 :(得分:0)
首先,也许您更愿意在拦截器(eg)中检查授权使用(登录)
其次,要在Struts2中重定向到struts2操作,只需使用适当的result即可。如果没有必要,访问较低级别的对象(与servlet相关)是不好的做法。
第三,关于I can't call to a .jsp directly
:你不能重定向到一个jsp url(因为你的架构中不能从浏览器中接收jsp),但是你可以调用它,也就是说,显示login.jsp回应你的行动。这很简单,只有当您希望用户在要求身份验证时在浏览器中看到一些“... login.do”网址时才有目标。