2016-04-29 3 views
0

Могу ли я использовать EL для указания пути моего контекста приложения на моем контроллере Spring, используя что-то вроде @RequestMapping("${pageContext.request.contextPath}")? На самом деле, я получаю ошибку 404. Итак, мой вопрос заключается в том, как сопоставить контроллер с корнем контекста?Могу ли я указать путь приложения в @RequestMapping на контроллере?

Я полагаю @RequestMapping("/") не может выполнять работу, когда приложение не только на сервере, и URL выглядит следующим образом: http://localhost:8080/myapp/mypage

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

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

    } 
} 

PS: Я уже добавил префикс приложения путь в каждом URL на мои JSP, как <form class="form-inline" role="form" action="${pageContext.request.contextPath}/search" method="post">. Теперь мне нужно сделать тот же трюк для контроллеров Spring, чтобы он работал, когда ... приложение wheather было развернуто как приложение ROOT или как «просто другое приложение на этом сервере».

+0

Вы хотите добавить свой путь контекста в качестве префикса для каждого URL? –

+0

Это не имеет никакого смысла. Сопоставления уже относятся к корню контекста. Spring 'DispatcherServlet' сопоставляется с'/'. Контейнер Servlet уже решил, что сервлет вашего приложения должен быть вызван. –

ответ

1

вы можете добавить в конфигурационный файл application.properties корневой путь. Этот путь корневого контекста будет префиксным путем ко всем путям контроллера.

application.properties

server.contextPath =/MyApp/MyPage

Контроллер

@RequestMapping ("/ тест")

Результат:

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

Смежные вопросы