spring-app の servlet.xml で宣言された 2 つの Bean があります。
<bean name="/apple.htm" class="controller.AppleController"/>
<bean name="/secure/banana.htm" class="controller.BananaController"/>
バナナコントローラーは次のとおりです。
public class BananaController implements Controller {
protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
logger.info("returning contact view");
return new ModelAndView("/banana");
}
}
ここにAppleControllerがあります
public class AppleController implements Controller {
protected final Log logger = LogFactory.getLog(getClass());
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
logger.info("returning contact view");
return new ModelAndView("/apple");
}
}
Apple.jsp は次のとおりです (Banana.jsp も同様です)。
<%@ include file="/WEB-INF/pages/include.jsp" %>
<html>
<body>
<h1>Test</h1>
<%@ include file="/WEB-INF/pages/menu.jsp" %>
<h2>Apple</h2>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac mauris ante.
</p>
</body>
</html>
これが menu.jsp です。
<a href="<c:url value="apple.htm" />" > Apple</a>
<a href="<c:url value="secure/banana.htm" />" > Banana</a>
<a href="<c:url value="/j_spring_security_logout" />" > Logout</a>
問題は、ログインするとbanana.htmにアクセスできることですが、「apple」ページに戻ると、すでに場所を特定しているため、secure/apple.htmページにアクセスしようとします。 /secure フォルダーにあります。
../apple.htm が適切にリダイレクトされることはわかっていますが、リンクが Banana.htm からのみクリックされることを示すものは何もありません。ここで何かが欠けていると確信しています。