Простой MVC для веб-приложений Java EE? - PullRequest
1 голос
/ 01 мая 2009

Одной из целей подхода MVC к веб-разработке является выделение модели, представления, контроллера.

Допустим, в Java EE, как в среде Struts, вы связываете действие Struts с контроллером, компонент Java с моделью и JSP и / или ActionForm с представлением.

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

Включаете ли вы класс «Manager» для манипулирования данными в форме просмотра до их отображения пользователю.

Вот один простой пример. Вы берете Имя, Фамилию из базы данных, а затем вам нужно преобразовать формат (преобразуйте всю строку в верхнем регистре в Смешанный регистр). Будет ли логика манипулировать этой строкой, прежде чем она попадет в представление JSP, добавить эту логику в класс менеджера?

Ответы [ 3 ]

3 голосов
/ 01 мая 2009

Если это логика, которая касается только представления (в вашем примере, чтобы данные выглядели «симпатичными»), то я бы поместил их в представление. Однако если впоследствии вы захотите сохранить измененные данные, они должны быть на бизнес-уровне. В целом, однако, я склонен держать слой между View и Control (ваш класс Manager), который связан только с проблемами отображения и проверкой входных данных высокого уровня, но не со сложными бизнес-правилами (убедитесь, что очень плохие данные никогда не достигнут бизнес-уровень).

1 голос
/ 01 мая 2009

Это очень сильно зависит от того, какую платформу вы используете. Я думаю, что такого рода вещи должны быть сделаны в представлении, но как именно вы это сделаете, будет отличаться.

Если вы используете JSP, возможно, имеет смысл написать библиотеку пользовательских тегов, которая будет делать то, что вы хотите - поэтому она отделена от фактического HTML, но все еще находится в «представлении».

Итак, вы бы получили что-то вроде:

<td><mytag:mixedCase value="${user.firstname}" /></td>

1008 * Etc. *

0 голосов
/ 01 мая 2009

Для простых задач представления, таких как верхний регистр строки, я поместил бы это в JSP. Для более сложной бизнес-логики я бы поместил ее в класс модели. Вы не хотите загромождать свои контроллеры бизнес-логикой. Еще одно преимущество использования его в модели состоит в том, что его можно тестировать модулем.

...