簡體   English   中英

Spring MVC導航路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM