Глобальное значение Spring access из JSP - PullRequest
1 голос
/ 24 февраля 2011

В моем приложении Spring я хочу добавить настраиваемое системное сообщение, которое может отображаться на каждой странице. Например, «Система выходит из строя через 10 минут».

Мне нужно хранить это значение глобально, но я не могу добавить какой-либо код в контроллеры, поскольку мне не нужно менять каждый из них. Я думал об использовании @Service, но я не знаю, как получить к нему доступ напрямую из JSP.

Я счастлив использовать нотацию сценариев JSP, чтобы получить то, что мне нужно. Есть идеи?

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

вы можете сделать это с помощью файла свойств.чтобы сделать это, поместите файл с именем messages.properties в папку WEB-INF / classes с таким содержимым:

shutdown=The system is going down in 10 minutes.

, затем вам необходимо включить необходимую информацию в файл servlet-context.xml.чтобы он мог искать сообщения в правильном файле:

<beans:bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <beans:property name="basename" value="/WEB-INF/classes/messages />
        <beans:property name="cacheSeconds" value="0" />

и, наконец, вы можете ссылаться на это сообщение из вашего jsp, например, используя библиотеку тегов форматирования из JSTL:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:message key="shutdown"/>
0 голосов
/ 24 февраля 2011

Другой идеей было бы поместить сообщения в область приложения? Многие люди не знают, что есть еще одна область действия, кроме запроса, сеанса и страницы.

В сервлете установите атрибут (запрос является объектом HttpServletRequest, переданным методу doGet / doPost):

request.getSession().getServletContext()
    .setAttribute("my.sys.msg", "The system is going down in 10 minutes.");

В вашем файле JSP используйте что-то вроде этого:

<jsp:useBean id="my.sys.msg" scope="application" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...