Spring MVC -> зависит от отображаемой страницы приветствия - PullRequest
2 голосов
/ 10 марта 2011

У меня есть приложение Spring MVC (версия 3.0.5.RELEASE), и оно у меня в mvc-config.xml:

<mvc:view-controller path="/" view-name="welcome"/>

Таким образом, запросы к "/" перенаправляются в окно приветствия welcome.jsp.

Это означает, что в моем случае, вызов URL http://myproject-test.mydomain.com/ переадресует на welcome.jsp. Это хорошо, но я должен расширить его. Помимо URL http://myproject-test.mydomain.com/, у меня есть URL http://myproject-anothertest.mydomain.com/. С этим URL все приложение должно быть одинаковым, за исключением страницы приветствия.

Позвонив по номеру http://myproject-anothertest.mydomain.com/, я хочу иметь страницу welcome-test.jsp вместо welcome.jsp.

Итак, как я могу это сделать? Я должен знать, с какого субдомена (myproject-test или myproject-anothertest) пользователь вызывает сайт, а затем показывает ему welcome.jsp или welcome-test.jsp.

Кто-нибудь знает, как это можно сделать?

Спасибо заранее и с наилучшими пожеланиями, Тим.

1 Ответ

1 голос
/ 10 марта 2011

Тег <mvc:view-controller> отображается на ParameterizableViewController

Вы можете унаследовать свой собственный класс контроллера от его родителя, AbstractController , и использовать параметр request вметод handleRequestInternal, чтобы определить, какое имя хоста используется для доступа к вашей странице, а затем использовать соответствующий вид.

Заголовок HTTP-запроса Host содержит (если используется HTTP / 1.1) "виртуальное" имя сервера, котороеиспользуется для доступа к вашей странице.В более раннем протоколе HTTP / 1.0 нет заголовка Host, и некоторые прокси отображают трафик на HTTP / 1.0, в этом случае вы не сможете различить трафик с использованием разных имен.

В JSP вы могли быиспользуйте <%=request.getServerName()%> для доступа к значению заголовка хоста.Смотрите документ getServerName .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...