[英]Spring MVC navigation path
嘗試在Spring MVC中進行一些簡單導航時遇到問題。 我有一個導航控制器:
@Controller
@RequestMapping("/secure")
public class NavigationController {
@RequestMapping("/operation")
public String processOperationPage() {
//Some logic goes here
return "corpus/operation";
}
@RequestMapping("/configuration")
public String processConfigurationPage() {
//Some logic goes here
return "corpus/configuration";
}
}
我的鏈接可以到達該控制器:
<a href="secure/operation.htm">Operation</a>
<a href="secure/configuration.htm">Configuration</a>
第一次單擊鏈接時,一切正常。 在瀏覽器中,我可以看到正常的路徑。 例如: http://localhost/obia/secure/configuration.htm
。 但是,如果我在此頁面上,並且在此頁面上單擊操作鏈接時,我想從該頁面訪問operation.htm,路徑將如下所示: http://localhost/obia/secure/secure/operation.htm
。
secure
出現兩次。 我怎么解決這個問題?
您的鏈接是相對的。 在它們前面添加斜杠將解決此問題。
如果使用的是JSP,請改用JSTL:
<c:url value="/secure/operation.htm" />
記住在JSP文件中包含taglib:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
通過使用JSTL,您可以避免在將應用程序部署到其他上下文(例如http://host/
和http://host/myapp
更改URL。
第一個將為您生成http://host/secure/operation.htm
,第二個將為您生成http://host/myapp/secure/operation.htm
。
根據當前頁面從相對URL更改URL或通過動態計算相對URL。 例如,您可以將URL更改為基於主機的URL:
<a href="/obia/secure/operation.htm">Operation</a> <a href="/obia/secure/configuration.htm">Configuration</a>
上面的響應者在使用c:url生成絕對URL時有一個正確的答案。 但是,在某些情況下,由於防火牆配置,JSTL無法正確知道URL基礎。 在這種情況下,您可以使用相對URL,但是它必須知道您從哪里開始。 例如,在obia / secure / operation.htm頁面上,該URL將是../secure/configuration.htm,或者僅僅是configuration.htm。 點點意味着向上移動一級。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.