JAX-RS 是否适合作为 MVC 框架?

JAX-RS有一些MVC支持,但我想知道JAX-RS是否真的是构建供人类使用的Web应用程序的好选择。

如果用户在表单中输入了错误或不完整的信息,则应像使用Grails或Wicket一样再次显示它。有没有一种舒适的方法来使用JAX-RS做到这一点?

据我所知,如果不是给出了所有必需的参数,或者存在类型转换问题(例如Date),则URI映射无法正常工作。这是对的吗?

是否支持国际化模板?

下面是基于 JAX-RS 的简单 GUI 应用程序的示例。但它真的很简单,像i18n和验证这样的事情没有被讨论。


答案 1

是的,你可以,但是你必须清除旧的页面发布模型,并开始将应用程序视为与RESTful SOA通信的断开连接的UI。输入表单数据时,如果数据不正确,它将发布到服务终结点,然后使用错误进行响应,UI 处理该错误。在传统的页面发布模型中,您不会将表单发布到服务器,而是像调用后端系统一样进行 RPC。您的视图将与 MVC 堆栈的其余部分完全分离。这使得用自定义移动或IVR系统替换视图变得非常简单。

如果用户在表单中输入了错误或不完整的信息,则应像使用Grails或Wicket一样再次显示它。有没有一种舒适的方法来使用JAX-RS做到这一点?

使用富 Internet 应用程序,您不必重新填充数据,因为您从未离开过该页面,而是对服务器进行 XHR 调用,并且会发回成功 200 或错误。然后,UI 根据该响应决定要执行的操作,但页面仍然完好无损,因为调用来自主 UI 线程的带外。


答案 2

JAX-RS是Java EE RESTful框架。JavaServer Faces(JSF)是Java EE MVC框架。它支持您在问题中提到的所有内容:在错误时回发到相同的表单,i8n / l10n等等。要了解有关 JSF 的更多信息,请浏览 Java EE 6 教程第 II 部分第 4-9 章

你可以用 JAX-RS 做一些 MVC,但它不是一个完整的 MVC 框架。同样的故事还在继续,你可以用JSF做一些RESTful,但它不是一个完整的RESTful框架。

如果你想要两全其美,我认为你真的需要去Ruby on RailsGroovy on Rails


推荐