Как получить абсолютный путь к корневому каталогу приложений с помощью Spring? - PullRequest
2 голосов
/ 10 января 2011

У меня есть приложение, которое может работать на http://serverA/m/ или http://serverA/mobile/. У меня есть общий заголовок с формой поиска, который нужно перейти на http://serverA/installationName/search.

Однако, если я использую <form action="/search">, он отправляется в корень сервера, а не в приложение tomcat.

Если я использую <form action="search">, он идет по пути относительно текущей страницы. (т.е. http://serverA/m/someOtherPage/search

Я пробовал <c:url value="search"> и <c:url value="/search">, но ни один из них, похоже, не работает.

В intelliJ <c:url value="/search"> дает мне «Не удается разрешить URL / поиск контроллера», даже если у меня есть контроллер, определенный с помощью @RequestMapping («/ search»)

Ответы [ 4 ]

7 голосов
/ 10 января 2011
<form action="<c:url value="/search" />" />

Использование <c:url> - путь.Не обращайте внимания на то, что говорит вам IDE.Они не хороши в этом.Просто попробуйте запустить его.

4 голосов
/ 10 января 2011

Божо прав. Я также использовал HTML BASE тег:

<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/" />

Если вы можете разместить этот тег в нескольких местах (в идеале, только в одной JSP), вы можете очистить свой код.

2 голосов
/ 10 января 2011

Вы можете (кроме подсказок других респондентов) также использовать тег JSP Spring (spring: url), который смоделирован после тега JSTL c: url (см. Ответ Bozhos).Ссылка tld:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/spring.tld.html#spring.tld.url

В нижней части этого блока mvc: resources для примера используется:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources

0 голосов
/ 10 января 2011

вы не сможете вставить тег c: url непосредственно в атрибут, если ваш тег формы является тегом jsp (возможно,).

В этой ситуации я делаю следующее:

<c:url var="someName" value="some uri value"/>
<sf:form path="${someName}" ...>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...