2010-01-20 3 views
1

Я нахожусь в середине создания собственной пользовательской веб-структуры MVC для проекта. Этот проект имеет очень старую базу кода, где одна страница JSP напрямую передает форму другому JSP, тогда как пути также жестко закодированы. Теперь это большой проект, и для Struts или JSF потребуется значительное количество времени. Итак, мое предложение состоит в том, чтобы создать небольшую пользовательскую структуру MVC и преобразовать в нее многие существующие потоки страниц, а также побудить их разрабатывать более новые приложения, используя эту новую структуру MVC.Пользовательский веб-MVC для устаревшего проекта Java EE

Я хотел бы рассмотреть это со всеми вами, имеет ли смысл, или мы должны напрямую перейти к стандартным фреймворкам MVC.

Моя идея

1. Create one front controller servlet which will have URL pattern like /*.sm 
2. This servlet reads one config file and creates a map whose key is requestedURI and value is the class name of the command bean. 
3. upon intercepting any action request it reads the parameter map (request.getParameterMap()). This servlet refers the already built map, understand whose command bean is to be invoked? Creates an instance of this command bean. 
4. pass the parameter map to this command bean and calls execute method. 
5. if any exception is found, front controller servlet forwards the request to one global error page 
6. if everything is fine, it then forwards the request to the expected URI (by removong .sm and replace it with .jsp) 

Как вы думаете, что я что-нибудь не хватает? Я знаю, что могу сделать это более увлекательным, предоставив страницу ошибок на странице запроса в файле конфигурации или так, но это можно сделать и позже.

ответ

2

Я думаю, что вы в конечном итоге изобретаете колесо, катая свою собственную структуру MVC. Я знаю, что соблазнительно создавать свои собственные, поскольку вам не придется привыкать к новому API, а вместо этого создавать свои собственные, и вы можете более легко адаптировать их к своим конкретным потребностям. Но поскольку это, кажется, очень долгое применение, вам придется учитывать тот факт, что ваши собственные рамки (которые теперь могут быть самыми современными) будут устаревшими и через пару лет.

И вот тут пригодится адаптация одной из популярных фреймворков. Создатели новой структуры обычно хотят, чтобы другие тоже двигались, поэтому они (или должны) предлагать легкую интеграцию или варианты миграции вдали от фреймворков, которые, по их мнению, они делают лучше (весна - хороший пример, поскольку она, например, легко интегрируется с существующими Struts, и вы можете постепенно перемещать свое приложение, не ставя старое в корзину). Кроме того, большинство современных фреймворков очень универсальны (что иногда может быть проблемой, поскольку они нуждаются в большем количестве времени для его ввода) и могут быть адаптированы практически ко всем операциям.

Поэтому я бы рекомендовал внимательно изучить существующие решения (вы также можете многому научиться из-за своих дизайнерских решений и ошибок), и только начинайте создавать свои собственные, если ни один из них не соответствует вашим требованиям.

+0

Вы правы, когда вы сказали, что его соблазн перевернуть мой собственный каркас. Но в конечном итоге это будет еще одно наследие. Хорошо, сказал Дафф. Сейчас я постараюсь выглядеть более внимательно. – Shamik

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