Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SEAM有什么缺点吗?_Java_Jsf_Seam - Fatal编程技术网

Java SEAM有什么缺点吗?

Java SEAM有什么缺点吗?,java,jsf,seam,Java,Jsf,Seam,作为一名java web应用程序开发人员,我去年使用了JSF(SUN)作为web应用程序的框架。我不得不说我很喜欢使用它,它使开发更容易 最近,我读了很多关于JBossSeam的好东西,但是我仍然没有遇到一个使用过它的人。从我所读到的内容来看,SEAM似乎是JSF的下一步 因此,我的问题是,对于使用SEAM的您来说:当您在哪里使用此技术时,您遇到过任何缺点吗?你觉得使用它很自然吗?我觉得很自然,使用注释让生活更轻松。我甚至无法想象使用getAttribute/getParameter框架。一个缺

作为一名java web应用程序开发人员,我去年使用了JSF(SUN)作为web应用程序的框架。我不得不说我很喜欢使用它,它使开发更容易

最近,我读了很多关于JBossSeam的好东西,但是我仍然没有遇到一个使用过它的人。从我所读到的内容来看,SEAM似乎是JSF的下一步


因此,我的问题是,对于使用SEAM的您来说:当您在哪里使用此技术时,您遇到过任何缺点吗?你觉得使用它很自然吗?

我觉得很自然,使用注释让生活更轻松。我甚至无法想象使用getAttribute/getParameter框架。一个缺点是SeamGen还不能与Maven一起工作(但是Seam3将基于Maven)。我认为Seam让您专注于您想要实现的目标,而对于其他框架,您必须考虑如何做到这一点。您是否尝试过使用javascript/prototype/jquery实现Ajax?与SeamAjax按钮和方法调用以及重播内容相比,这真的很痛苦。对于seam和Rich Faces来说,根本不需要Javascript。对我来说,这是我使用过的最好的框架。

任何像SEAM或Grails这样的框架的优点都是它具有更高的抽象级别。它会为您处理潜在的细节,如果设计和编写得好,会让事情变得更容易

像SEAM或Grails这样的框架的缺点是它对您隐藏了很多细节。如果你不知道下面发生了什么,你会发现自己陷入了一个麻烦的世界,如果你陷入困境,对为你生成的代码一无所知

另一个缺点是,他们在模型中建立的假设可能并不总是你想要的。但是改变他们意味着打破他们为你制定的道路,这并不容易


我的建议是使用这个框架并欣赏它带来的好处,但不要把它们当作停止了解下面发生的事情的借口。做一个不用框架就可以手工编写整个内容的人,但选择使用它来利用它提供的优势。

说“Seam是JSF的下一步”是不正确的。Seam不必使用JSF作为视图层。它也可以使用或

然而,当与JSF一起使用时,它在简化方面做得非常好。您的XML配置比标准JSF少,我经常忘记JSF在EL中没有对话上下文或参数化方法调用之类的东西。例如:

<h:commandButton action="#{myBean.sayHello('damo')}" value="hello"/>

它很容易使用,而且在任何地方使用POJO的能力都非常解放。它最大的缺点是与JSF相关的:

  • 过分依赖HTTP POST(这
    s:按钮/链接
    并不总是解决问题)
  • 大量的javascript
  • 对getter/setter的调用过多
  • 难看的HTML;等
有足够多的页面详细介绍了JSF的缺点(请注意,这些并不是对Seam的批评,而是对JSF1.x的批评,很多都在JSF2.0中得到了解决)

我不认为Seam是JSF的“下一步”,但如果您现在计划使用JSF1.x,它和Facelets是至关重要的


我认为这是下一步。

我喜欢JSF,不久前我评估了Seam。JSF是一个web UI框架,而Seam是一个更通用的web应用程序框架,它不仅集成了JSF,还集成了会话上下文、工作流(jBPM)和对象持久性(最好是EJB3)。我第一次被Seam吸引是因为广告中的自动生成脚手架,但我从未将其用于我的企业数据模型。从那以后,我对Spring框架和Spring JSF越来越感兴趣。对我来说,它更加模块化,如果使用iBATIS,它只需要像Tomcat这样的servlet容器,而不需要像JBoss这样的JavaEE容器。春天已经存在了更长的时间,并且有更多的思想分享


另外,ICEfaces与JSF和facelets的结合非常好,无论是否使用Seam或Spring等应用程序框架,ICEfaces都能很好地工作。

我在正在进行的ICEfaces大型项目中使用了Seam。Seam当然比使用普通JSF要好得多(请参阅Damo发布的链接,上面有几个答案)

然而,我记得的一些问题是:

  • 单元测试:要让SeamTest正常工作,特别是在持续集成构建中,是很困难的,请在web上搜索“SeamTest问题”。另请参见:
  • 开发人员可以通过多种方式完成任务,并且没有太多的最佳实践记录在案。因此,您必须花时间找出最适合您的项目团队的方案。例如,在实现表单时,以下是可能的标记(请注意,其中一些重叠):
小脸

JSTL

JSF

冰面

JSF

接缝

  • 性能是值得怀疑的,尤其是对于IceFaces,而且,为了做正确的事情,您需要Seam的“专家级”知识,默认方式会让您陷入麻烦。有关详细信息,请参阅本文:
  • 由于Seam 3即将推出,并且应该使用2个新规范(JSF 2和WebBeans),这就给Seam 2上的项目带来了问题,以及需要多长时间才能稳定下来
  • 学习曲线。IMHO seam试图做的太多了,给你一些包装,比如iText、Quartz、JExcel、jBPM等。seam与第三方框架的集成预计比最新版本落后一步。例如,我们必须直接集成jBPM,因为我们需要一些最新的特性
  • 可能是因为JPA 1.X中缺少条件查询,所以实现动态搜索屏幕(用户在其中填写大量筛选选项,您必须生成动态HQL)的方式非常优雅,这是在使用推荐的“Seam Application Framework”EntityQuery类时,请参阅下面的链接以获取简单示例,但是你可以想出一个好主意