2013-02-15 2 views
1

Я только начинаю использовать шаблоны MVC в своих Java-приложениях. Раньше я использовал MVC в CodeIgniter, но я хочу убедиться, что все будет правильно.Использование шаблонов MVC в Java

  • View - это графические файлы, которые отправляют входы контроллерам.

  • Контроллеры затем принимают эти входы и в конечном итоге отправляют их на модель.

В моих приложениях CodeIgniter все, что я использовал для моделей, было связано с базой данных. Если мне нужно проверить электронную почту, например, должен ли я делать это в контроллере или в модели?

+0

Я не эксперт по MVC, но для меня это похоже на задачу контроллера, потому что задача контроллера заключается в преобразовании ввода из представления в то, что модель может понять.Таким образом, проверка ввода пользователя и его дезинфекция, чтобы модель могла использовать/send/parse/что бы это ни звучало, как «Контроллер». – 11684

+0

Я удалил ваш последний абзац в надежде, что этот вопрос не будет закрыт как «неконструктивный». –

+0

И обратите внимание, что вы используете версию MVC от Apple, она немного отличается от исходной версии: http://www.oracle.com/technetwork/articles/javase/mvc-136693.html (вам нужно прокрутить до 'модификации MVC дизайн, или Ctrl + F, а затем «Apple»). – 11684

ответ

3

Где сделать валидацию - вопрос, который по-прежнему открыт для обсуждения в шаблоне MVC.

Некоторые тривиальные проверки могут и должны выполняться на представлении. Пример: виджет ввода текста, который принимает числовое значение, даже не позволяет пользователю вводить буквы. Для этого нет необходимости консультироваться с контроллером или моделью.

Некоторые говорят, что это задача диспетчеров, чтобы гарантировать, что она не подает мусор модели, потому что решение о том, что действительно, а что нет, является частью бизнес-логики.

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

tl; dr: Это зависит.

0

Из модели MVC

  • Посмотреть несет ответственность за действия в интерфейс/конечную точку между вами приложение и внешний вид, чаще всего это GUI какой-то
  • Контроллер представляет собой диспетчерскую часть, и должна быть довольно легкой
  • Модель относится к вам бизнес-логику, переговоры к БД и т.д.

Что касается вас вопрос о проверке электронной почты, вы должны сделать, это я n двух мест, в представлении/GUI через javascript, чтобы обеспечить быструю и приятную обратную связь в случае, если пользователь вводит плохой адрес электронной почты, а также избавит вас от бесполезных обращений. Но кроме этого вы также должны делать это на стороне сервера. Фактическая логика для этого была бы на уровне модели, например, isValidEmail (String emailAddress), которая возвращает логическое значение и объявляется в модели где-то и получает вызов от контроллера. Я думал о чем-то вдоль линий:

public void myAction() { 
     //we are in the controller 
     if(!Manager.isValidEmail(emailAddressAsString)) { 
      dispatchBadEmailView(); //dispatch to a bad email address view 
     } 
    } 

Это мое мнение, а также, если вы не сделали уже, попробуйте использовать Spring MVC или что-то вроде этого, он помогает много, читайте здесь: http://www.mkyong.com/tutorials/spring-mvc-tutorials/

1

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

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