谷歌应用引擎Java世界中的MVC

谷歌应用引擎Java世界中的MVC,java,model-view-controller,google-app-engine,frameworks,Java,Model View Controller,Google App Engine,Frameworks,我是从C#&ASP.NETMVC来到Java的,我很想在Java世界中找到一个可以在Google应用程序引擎上使用的等价物。我已经开始尝试编写一个非常简单的框架,甚至迈出了第一步。理想情况下,我不必做所有的艰苦工作,但一定有人已经做了这件事!所以我的问题是——有哪些框架是我熟悉的,来自ASP.NETMVC,我可以在Google AppEngineforJava上使用它们 我想要的关键是: 简单路由-/products/view/1映射到productid为1的产品控制器的视图操作 模板引擎-某

我是从C#&ASP.NETMVC来到Java的,我很想在Java世界中找到一个可以在Google应用程序引擎上使用的等价物。我已经开始尝试编写一个非常简单的框架,甚至迈出了第一步。理想情况下,我不必做所有的艰苦工作,但一定有人已经做了这件事!所以我的问题是——有哪些框架是我熟悉的,来自ASP.NETMVC,我可以在Google AppEngineforJava上使用它们

我想要的关键是:

  • 简单路由-
    /products/view/1
    映射到productid为1的产品控制器的视图操作
  • 模板引擎-某种方式可以轻松地将“ViewData”传递到视图,并从视图轻松访问它,理想情况下,我希望避免任何过于XML的内容(这就是我喜欢的原因)
我听说JavaServerFaces(JSF)类似于microsoft MVC框架。(我使用JSF,但从未使用.NETMVC)。我相信JSF1.1在Google App Engine上运行得很好,如果您坚持使用XHTML而不是JSP作为模板,我怀疑JSF的较新版本会起作用。还有一些很好的库,可以让您在JSF框架上利用AJAX接口,RichFaces是一个流行的库。 退房 而且

我目前正在使用Spring MVC开发一个Google应用程序引擎应用程序。它比ASP.NETMVC成熟得多,所以你不应该失望。作为额外的奖励,你拥有国际奥委会春季的全部力量

对于视图层,我正在尝试速度。这很简单,但我还没有决定是否更喜欢它而不是JSP。我看了FreeMaker一眼,但不喜欢我看到的东西。如果您不想使用XML的JSP模板,我建议您使用Velocity


Spring在GAE上遇到的唯一问题是文件上传。多部分解析器实现都依赖于临时文件目录。在编写了自己的实现之后,我又回到了无缝上传模型中的文件的阶段。

我也非常喜欢Freemarker。我建议您看看归纳框架,它的模板引擎是可插入的,但默认支持Freemarker。归纳是一个轻量级和快速的MVC框架(7.7K行),但有许多主要MVC框架中缺少的功能,例如:

  • 在开发过程中更改控制器、视图或模型时动态重新加载
  • 文件上传非常简单(与字符串输入没有太大区别)
  • 控制器不需要配置
  • 能够使用IDE分析模型、视图和控制器之间的依赖关系
  • 基于正则表达式的URL映射
  • 对管理任何MVC框架重定向的最佳支持
对于@pjesi提出的文件上载问题,归纳允许您设置文件写入磁盘的大小阈值。如果设置的足够大,则不应尝试将任何文件写入磁盘


<查看开始入门教程:

有两个MVC框架,你应该考虑(我现在正在做的)。最初,我用的是SpringMVC(3.0),GAE的冷启动非常可怕!启动大约需要10秒钟(我甚至没有使用任何复杂的东西,比如SpringSecurity等),所以我需要使用cron作业来保持它的活力。所以我不建议您在GAE上使用Spring

请看一下以下框架:

至于模板,我已经使用了很长一段时间了,所以不需要切换


希望这有帮助

游戏框架符合要求。它是一个面向Java的现代MVC框架,并且有一个Google应用程序引擎模块来提供兼容性。看


使用Play的另一个好处是可移植性。您可以使用内置的Web服务器(可选地在apache后面进行缓存、负载平衡等)部署Play,也可以将其打包为.war文件部署到许多Java应用程序服务器(Glassfish、Tomcat等)。

出于兴趣,您使用的是Spring 2.5还是3.0?我使用的是2.5,一旦3.0进入全局Maven存储库,我可能会切换到3.0。还有Apache Struts: