Размер шрифта для всех страниц

0

Я новичок в Spring и веб-приложениях.

Я создаю объект, содержащий размер шрифта в моем контроллере, а затем добавляю его в модель.

private String fontSize = "24";

@RequestMapping(value = "/", method = RequestMethod.GET)
public final ModelAndView mainGet(final HttpServletRequest request, final HttpServletResponse response)
        throws ServletException {

    ModelAndView model = new ModelAndView("home");
    model.addObject("fontSize", fontSize);

    return model;
}

Я передаю его JSP, и я установил размер шрифта с помощью jQuery. В приложении у меня есть кнопки для изменения размера шрифта... все работает, но когда я обновляю или изменяю страницу, эти настройки теряются.

Как сохранить это значение в модели? Должен ли я выполнять пост-вызов через AJAX каждый раз, когда меняю размер?

Теги:
spring-mvc

2 ответа

1
Лучший ответ

Автоматическая настройка обратной связи между сервером и клиентом отсутствует. Если вы сделаете изменения на клиенте, скажем, используя jQuery, и вы хотите сохранить это изменение, вы должны где-то сохранить значение. Вы можете сделать это на стороне сервера, например, в базе данных настроек или в сеансе контейнера сервлета. Или вы можете сделать это на стороне клиента, например, используя локальное хранилище или файлы cookie. Вы даже можете сохранить его как часть объекта состояния в своем HTML и передать объект состояния с собой при навигации по сайту.

Правильное место для хранения зависит от вашего варианта использования и дизайна вашей системы. Вы, безусловно, можете использовать AJAX для публикации обновленного значения каждый раз, когда пользователь вносит изменения, а это значит, что вам понадобится метод для его обработки и сохраняйте значение где-то, как в следующем (непроверенном) коде:

@RequestMapping(value = "/prefs/fontSize", method = RequestMethod.PUT)
public void putFontSize(@RequestBody String fontSize)
        throws ServletException {
    // persist fontSize here. 
}
0

Okey, мне это удалось...

Я загрузил jQuery Cookie Plugin, я думаю, что лучший способ сохранить это значение - это сделать с помощью cookie (или, может быть, это самый простой способ).

Это ссылка на плагин, который я использовал:

Плагин JQuery Cookie

Ещё вопросы

Сообщество Overcoder
Наверх
Меню