2009-05-01 2 views
1

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

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

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

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

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

ответ

3

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

1

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

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

Таким образом, вы бы что-то вроде:

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

Etc.

0

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

Смежные вопросы