Я работал с Spring MVC и у меня есть вопрос, который, как мне кажется, относится к MVC в целом. Я ищу способ обеспечить (или, по крайней мере, лучше документ) договор между моделью и конкретными представлениями. То есть каждое представление имеет набор обязательных атрибутов модели, но чтобы выяснить это, человек, пишущий контроллер, должен прочитать / понять весь JSP (в дополнение к любым тегам или другим включенным JSP), чтобы они могли заполнить модель соответствующим образом. прежде чем вернуть это мнение. Или вы можете посмотреть в других местах, где это представление возвращается и работает в обратном направлении, пытаясь выяснить, какие атрибуты являются обязательными, а какие - необязательными. Ни один из них не особенно привлекателен для меня.
Является ли ответом на перенаселение модели? Мне не особенно нравится эта идея. То, что я хотел бы, - это способ программно документировать (или, что еще лучше, применять) эти обязательные атрибуты для каждого просмотра. Я не смог найти ничего в документации Spring, которая касалась этого. У кого-нибудь есть мысли или идеи?
Одна вещь, которая пришла в голову, это иметь представление Enum для каждого модуля. Каждая константа в Enum будет иметь имя представления и набор обязательных атрибутов модели (возможно, также отдельный набор необязательных атрибутов). Методы контроллера затем возвращали бы член этого Enum, и тогда модель могла бы быть проверена (используя что-то вроде model.keySet (). ContainsAll (viewEnum.requiredAttributes ())). Это все равно будет ошибка времени выполнения, но, по крайней мере, программисты могут посмотреть на этот Enum и очень ясно увидеть, какие атрибуты модели требуются для каждого представления.