Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Jsf 使用基于动作的java框架开发web应用程序的原则是什么?_Jsf_Spring Mvc_Stripes - Fatal编程技术网

Jsf 使用基于动作的java框架开发web应用程序的原则是什么?

Jsf 使用基于动作的java框架开发web应用程序的原则是什么?,jsf,spring-mvc,stripes,Jsf,Spring Mvc,Stripes,背景 我将用java开发一个新的web应用程序。它不是很大或很复杂,我有足够的时间,直到它“正式”开始 我有一些JSF/Facelets开发背景(大约半年)。我对JSP+JSTL也有一些限制 出于自我教育的目的(也是为了找到最好的解决方案),我想用一种基于行动的框架为新项目制作原型。实际上,我将在Spring MVC和Stripes之间进行选择 问题 为了获得关于基于动作的框架的正确印象(与JSF相比),我希望确保正确使用它们(在更大或更小的程度上) 所以,这里我列出了一些最常见的任务(至少对我

背景

我将用java开发一个新的web应用程序。它不是很大或很复杂,我有足够的时间,直到它“正式”开始

我有一些JSF/Facelets开发背景(大约半年)。我对JSP+JSTL也有一些限制

出于自我教育的目的(也是为了找到最好的解决方案),我想用一种基于行动的框架为新项目制作原型。实际上,我将在Spring MVC和Stripes之间进行选择

问题

为了获得关于基于动作的框架的正确印象(与JSF相比),我希望确保正确使用它们(在更大或更小的程度上)

所以,这里我列出了一些最常见的任务(至少对我来说),并描述了我如何用JSF解决它们。我想知道应该如何使用基于动作的框架来解决这些问题(如果具体任务有什么不同,可以单独使用SpringMVC和Stripes)

  • 呈现内容:我可以应用标准jsf库(核心和html)或第三方库(如RichFaces)中的即用组件。我可以组合简单的组件,并且可以轻松创建基于标准组件的自己的组件
  • 以正确的格式呈现数据(原语或引用类型):每个组件都允许指定一个用于以两种方式转换数据(呈现和发送到服务器)的方法。和往常一样,Converter是一个简单的类,有两个小方法
  • 站点导航:我在faces-config.xml中指定了一组。然后我指定一个链接(或按钮)的action属性,它应该匹配一个或多个导航案例。最佳匹配由JSF选择
  • 实现流(例如多种形式的向导):我使用JSF1.2,所以我使用它作为流(对话)范围
  • 表单处理:我有一个相当标准的JavaBean(JSF术语中的支持bean),具有一定的范围。我在这个bean属性上“映射”表单字段。如果一切顺利(没有异常和验证通过),那么所有这些属性都将使用表单字段中的值进行设置。然后我可以调用一个方法(在button的action属性中指定)来执行一些逻辑并返回字符串,这应该是我的导航案例之一,以便转到下一个屏幕
  • 表单验证:我可以创建自定义验证程序(或从现有验证程序中选择),并将其添加到几乎每个组件中。第三方库有一组自定义ajax验证器。标准验证器仅在页面提交后工作。实际上,我不喜欢JSF中的验证工作方式。太神奇了。许多标准组件(或者可能全部)都有预定义的验证,不可能禁用它(可能不总是,但我遇到了很多问题)
  • Ajax支持:许多第三方库(MyFaces、IceFaces、OpenFaces、其他PrefixFaces…)都具有强大的Ajax支持,并且运行良好。直到你遇到问题。那里也有太多的魔法。如果它不起作用,很难让它起作用,但你已经按照手册中的描述做对了
  • 用户友好的URL:存在一些库。这也是可以做到的。但我从未尝试过。第一眼看上去似乎太复杂了

  • 提前感谢您解释如何使用基于操作的框架完成这些项目(或其中的一些项目)。

    我的答案不是您想听的:不要从组件框架切换到操作框架

    在多年的行动框架开发之后,我改变了方向,我再也不会回去了

    在您提到的8个用例中,只有一个会让人想起操作框架明显更好的地方,那就是URL设计/友好的URL。它也可以在组件框架中完成,但在操作框架中要容易得多(特别是在您只需用url注释ActionBean的条带中)


    我建议您试试wicket,它非常容易学习(比JSF容易得多),而且它还可以让您重用许多现有组件。

    我的答案不是您想听的:不要从组件框架切换到操作框架

    在多年的行动框架开发之后,我改变了方向,我再也不会回去了

    在您提到的8个用例中,只有一个会让人想起操作框架明显更好的地方,那就是URL设计/友好的URL。它也可以在组件框架中完成,但在操作框架中要容易得多(特别是在您只需用url注释ActionBean的条带中)


    我建议您试试wicket,它非常容易学习(比JSF容易得多),而且它还可以让您重用许多现有组件。

    我将尽我所能回答有关条纹的问题。我在过去使用过Struts和JSF,但最近没有,所以我对它们充其量只能有模糊的概念和感觉

    我们非常熟悉w/条纹,现在几乎所有东西都使用它,并且非常喜欢它。它很容易跳入,支持许多复杂的场景,但您也可以自由地在它之外工作,这在您想要构建自己的ajax小部件或与其他系统或其他东西交谈时非常重要

    如果您选择stripes路线,我肯定会推荐您购买或下载。它是Stripes所需的一切的一站式服务,实际上是StripeSist的唯一文档(非常好的特性,但没有web文档)


    呈现内容:我可以应用标准jsf库(核心和html)或第三方库(如RichFaces)中的即用组件。我可以组合简单的组件,并且可以轻松创建基于标准组件的自己的组件

    这是相似的。Core、Html、Fmt等以及您找到的任何自定义标记,inc.显示:标记、打包标记,并创建您自己的标记。然而,显然