константы для аттрибутов Model

При использовании Spring mvc, мы в Model передаём необходимые значения в аттрибуты, чтоб потом отобразить их на странице. В методе контролёра:

model.addAttribute("name", myName);

на странице html:

<title th:text="${name}"></title>

Потенциальный баг - изменить имя атрибута в контролёре и забыть это сделать на страничке html. Это можно решить создав спец класс для хранения этих атрибутов. Для контролёра это будет выглядеть так:

model.addAttribute(CommonAttributes.NAME, myName);

таким образом, если необходимо изменить имя атрибута, то мы его меняем только в одном месте - CommonAttributes.NAME, это отлично сработает для жава классов. Как создать что то подобное для классов и страничек?


Ответы (1 шт):

Автор решения: Олексій Моренець

Создаете класс (не интерфейс!!!), в котором будут все ваши константы, например, CommonAttributes.java, в нем описываете константы, например, public static final String NAME = "name"; В jsp-файле вначале описываете импорт <%@ page import="CommonAttributes" %>. Использование: например, <input type="text" id="inputName" name="${Parameters.NAME}">. Ну и в сервлете уже ваш код model.addAttribute(CommonAttributes.NAME, myName);

Как-то так. У меня так работает.

→ Ссылка