2016-04-29 7 views
0

ELを使用して、Spring Controller上のアプリケーションコンテキストパスを@RequestMapping("${pageContext.request.contextPath}")などを使用して指定できますか?実際には、404エラーが発生します。だから私の質問は、コントローラをコンテキストルートにマップする方法ですか?私はすでに上のすべての単一のURLにアプリのパス接頭辞を追加しました: http://localhost:8080/myapp/mypageコントローラの@RequestMappingにアプリケーションパスを指定できますか?

@Controller 
@RequestMapping("${pageContext.request.contextPath}") 
public class MainController { 

    @RequestMapping("/") 
    public ModelAndView index() { 

    } 
} 

PS:私は、アプリケーションがサーバー上だけではないとき@RequestMapping("/")が仕事をすることはできません推測し、URLがどのように見える

私のJSPは、<form class="form-inline" role="form" action="${pageContext.request.contextPath}/search" method="post">のようです。今では、Spring ControllersがROOTアプリケーションとして、あるいはこのサーバー上の別のアプリケーションとして展開されているときに動作するように、同じトリックを作る必要があります。

+0

あなたはすべての単一のURLの接頭辞として、あなたのコンテキストパスを追加したいですか? –

+0

これは意味をなさない。マッピングはすでにコンテキストルートからの相対パスです。 Springの 'DispatcherServlet'は'/'にマップされます。サーブレットコンテナは、あなたのアプリのサーブレットが呼び出されるべきであることをすでに解決しています。 –

答えて

1

application.properties設定ファイルにルートコンテキストパスを追加できます。そのルートコンテキストパスは、すべてのコントローラパスのプレフィックスパスになります。

application.properties

server.contextPath =/myappの/マイページ

コントローラ

@RequestMapping( "/テスト")

結果:

http://localhost:8080/myapp/mypage/test

関連する問題