2009-05-14 3 views
25

Я прихожу на Java из C# & ASP.NET MVC, мне бы хотелось найти эквивалент в Java-мире, который я мог бы использовать в Google App Engine. Я уже начал играть с FreeMarker и даже сделал первые шаги для написания очень простой структуры. В идеале мне не пришлось бы делать всю тяжелую работу, хотя кто-то должен был это сделать уже! Поэтому мой вопрос: какие рамки существуют там, которые были бы знакомы мне из ASP.NET MVC, и я мог бы использовать их в Google App Engine для Java.MVC в мире приложений Google App

Основные вещи, которые я бы хотел являются:

  • Простая маршрутизация - /products/view/1 получает отображается на вид действия контроллера продукции с ProductID из 1
  • Template Engine - каким-то образом легко передать «ViewData» в представление, и из вида, легко доступного для него, в идеале я бы хотел избежать всего, что слишком XMLy (поэтому мне нравится FreeMarker).
+0

Существует также Apache Struts: https://struts.apache.org/ – Chloe

ответ

12

В настоящее время я работаю над приложением Google App Engine, с помощью Spring MVC. Он намного более зрелый, чем ASP.NET MVC, поэтому вы не должны разочаровываться. В качестве дополнительного бонуса у вас есть вся сила IoC весны.

Для просмотра слоя я пытаюсь определить скорость. Это довольно просто, но мне еще предстоит решить, предпочитаю ли я его JSP. Я коротко посмотрел на FreeMaker, но мне не понравилось то, что я видел. Если вы хотите держаться подальше от XML'y JSP шаблонов, я рекомендую вам дать Velocity спину.

Единственная проблема, с которой я столкнулся с Spring on GAE, - это загрузка файлов. Реализации MultipartResolver полагаются на временный каталог файлов. После написания моей собственной реализации я вернулся к бесшовной загрузке файлов в своих моделях.

+0

Из интереса вы используете Spring 2.5 или 3.0? – thatismatt

+0

Я использую 2.5, я, вероятно, переключусь на 3.0, когда он будет в глобальных хранилищах Maven. – pjesi

1

JavaServer Faces (JSF) Я слышал, похоже на инфраструктуру MVC Microsoft. (Я использую JSF, но никогда не использовал .NET MVC). И я считаю, что JSF 1.1 отлично работает в Google App Engine, и я подозреваю, что новые версии JSF будут работать, если вы будете использовать XHTML вместо JSP в качестве шаблонов. Есть также несколько хороших библиотек, которые позволяют вам использовать интерфейс AJAX в рамках JSF, RichFaces является популярным. Проверьте JavaServer Faces on sun.com , а также JBoss RichFaces

2

У меня также есть сильное предпочтение Freemarker. Я предлагаю вам взглянуть на структуру Induction, его механизм шаблонов подключается, но поддержка по умолчанию для Freemarker. Индукция - это легкая и быстрая структура MVC (7.7К линии), но имеет много особенностей, отсутствующих в основных рамках MVC, такие как:

  • динамическая перегрузка в процессе разработки, когда вы меняете контроллеры, представления или модели
  • загрузки файлов так просто (не сильно отличается, что строка вход)
  • нет необходимости конфигурации для контроллеров
  • возможности анализировать зависимости между вашими моделями, представлениями и контроллерами с помощью IDE
  • регулярного выражения на основе отображений URL-адрес
  • Лучшая поддержка для управления перенаправлениями любых фреймов MVC

Что касается проблемы с загрузкой файла, вызванной @pjesi, Induction позволяет установить порог размера, при котором файлы записываются на диск. Если он установлен достаточно большим, он не должен пытаться записывать файлы на диск.

Заканчивать Начало работы учебник здесь: http://www.inductionframework.org/getting-started-tutorial.html

8

Есть несколько рамок MVC, что вы должны рассмотреть (это то, что я делаю сейчас). Сначала я пошел с Spring MVC (3.0), и холодный старт на GAE ужасен! Для начала требуется около 10 секунд (и я даже не использую ничего сложного, например, весеннюю безопасность и т. Д.), Поэтому мне нужно использовать задание cron, чтобы поддерживать его. Поэтому я не рекомендую использовать Spring вообще на GAE.

Взгляните на следующие рамках:

VRaptor

Slim3

Google Sitebricks

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

Надеюсь, это поможет!

3

Play Framework будет соответствовать счету. Это современная среда MVC для Java и имеет модуль Google App Engine для обеспечения совместимости. См. http://www.playframework.org/modules/gae.

Другим преимуществом использования Play является переносимость. Вы можете развернуть Play с помощью встроенного веб-сервера (опционально за apache для кеширования, балансировки нагрузки и т. Д.), Или вы можете связать его как файл .war для развертывания на многих серверах приложений Java (Glassfish, Tomcat, ...).

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