【发布时间】:2011-12-07 13:27:14
【问题描述】:
我在 struts 中有一个这样的 jsp 页面:
<%@taglib prefix="s" uri="/struts-tags" %>
<s:if test="#session.variablename == null" >
**<s:action name="loginForm" />**
</s:if>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
</head>
<body>
<h1>Hello World!</h1>
<s:a href="doctorLogout">Logout</s:a>
<s:include value="/WEB-INF/doctor/doctorFooter.jsp" ></s:include>
如果未设置session,我需要将此页面重定向到struts.xml 页面中的操作。我试过<jsp:forward />标签而不是<s:action />,但是jsp重定向到错误页面。这有什么解决办法吗? struts2中是否存在重定向标签?
【问题讨论】:
-
我建议你使用一个拦截器来检查请求是否为给定的操作设置了会话属性,如果它有会话,那么你将用户重定向到某个地方(从拦截器)。这样您就不必在需要验证会话属性的每个 jsp 页面中复制
-
这里有一个详细的教程如何创建这样的拦截器vitarara.org/cms/struts_2_cookbook/creating_a_login_interceptor,是的,不要将这样的逻辑与演示混为一谈
-
你需要的是一个登录拦截器。这是一个例子。 onlinexamples.com/…