RESTful JSF是否可行?

10
我最近尝试将我写的一个简单Rails应用程序转移到JSF(使用Seam),以便更好地了解哪个更加高效。这个Rails应用采用RESTful架构,我很喜欢它。但进入JSF时,我惊讶地发现(可能是错误的)JSF只支持POST,这使它本质上不符合RESTful架构。
我进行了一些搜索,但没有找到令人满意的答案。JSF / Seam似乎非常受欢迎,但对我来说,它禁止所有HTTP方法除了POST,这一点让我无法理解。JSF本质上是否不支持RESTful架构,或者我错了,RESTful JSF是可能的(本质上或通过插件实现)?
4个回答

6

这里有一篇博客文章可以解答这个问题,虽然它没有得出任何确定的结论。

根据我的个人经验,JSF/Seam并不是很流行,很大程度上是因为这些问题。它似乎非常努力地抽象出Web的基本特性,然后会破坏像GET这样的东西。无论你遇到什么问题,修复方法总是“在下一个版本中”或者“如果你有好的工具,那就不是问题”。你的情况可能不同,但我可能会考虑使用不同的技术栈。

我听说过Restlet的好处,我看到Struts 2有一个REST插件。随着Spring 3的发展,Spring MVC已经增加了对REST的支持。我曾经使用Grails,它使得RESTful的事情变得非常简单。它还有另一个好处,就是你应该很熟悉它,因为你已经有了Rails的经验。


谢谢。您的链接提到Seam支持REST,所以我也会去看一下。到目前为止,Rails似乎是最优雅的选择,但我想确保我看看其他主要竞争对手(包括Grails)。 - SingleShot
4
有关Seam和REST的文章并不完全准确。他将RoR Controllers与Seam对JAX-RS的支持进行比较,但这是两件不同的事情。更准确的比较应该是将RoR Controllers与Seam Page Actions相比较。 - Damo

5

3

JSF与Seam一起可以很好地处理GET请求,这取决于你想要用它做什么。JSF通常使用post将字段数据传递到后端。许多JSF的功能都是使用post实现的。但是你当然可以使用Seam页面参数或者直接获取底层的HTTPRequest对象来使用GET。

对于更大的RESTful架构,JSF并不适用。但是你可以自由地使用JSF作为用户界面,同时使用JAX-RS作为RESTful API。两者可以和谐共存。


2
根据您的具体需求(REST作为API或更多地用于获取可书签URL),Seam比其他引擎开发得更加成熟。Seam开发人员的一篇文章链接如下http://relation.to/Bloggers/RESTSupportInLatestSeam21,文章演示了新的REST功能,其中包括如何仅使用四行XML代码通过RESTful API公开对实体的完全访问权限等。
如果您只是要求书签功能,仍需要在JSF页面和流程中仔细设计链接方式,尽管Seam 2.2增加了一些功能以使此过程更容易。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接