spring mvc: показать вид для конкретной страны или по умолчанию, если его нет - PullRequest
0 голосов
/ 08 октября 2011

ситуация: У меня есть приложение, которое использует отдельные файлы jsp для каждой конкретной страны (я реализовал с помощью view resolver). Однако при таком подходе я должен повторить изменения jsp для каждой страны, даже если для этой страницы нет конкретных изменений.
пример: для пользователей темы "en" У меня страница с инвойсом, отличная от пользователей темы "de" с другим макетом и другой логикой. Идет к одному контроллеру и выполняет разные действия в зависимости от пользователя.
но большую часть времени логика и страница JSP одинаковы (например, список учетных записей).
вопрос: Как сохранить эту логику, а также сделать запасную страницу для этого конкретного действия? Если существует /de/invoice.jsp, просто используйте это, иначе используйте /invoice.jsp (так же, как темы в drupal)
Я использую Tomcat в качестве сервера приложений.

Любое предложение?

(Обратите внимание, что под "темой" я не подразумеваю поддержку тем Spring, а скорее общую проблему можно решить с помощью тем Spring.)

1 Ответ

0 голосов
/ 08 октября 2011

По сути, вы просто хотите динамически выбирать страницу <jsp:include>.

Давайте предположим, что вы поместили имя страницы для включения в переменную invoicePage.Затем шаблон страницы, на который ссылается ваш преобразователь представлений, может включать эту переменную следующим образом:

<jsp:include page="${invoicePage}"/>

Таким образом, единственный способ - выбрать правильный invoicePage.

Весенние темы имеют хорошее решениек этому: поместите имя тематического включения в свой файл свойств темы, и Spring позаботится о том, чтобы вернуться к стандартному для вас.

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

...