apache wicket_教程– Apache Wicket:有趣的Web框架

apache wicket

选择Java技术堆栈时,不乏多样性。 为了摆脱“滚动自己的[一切]”的想法,以至于许多公司都沦为猎物,而“一切必须成为标准”的哲学,则对每一层都采取了各种各样的方法过去几年中,Java体系结构如雨后春笋般涌现。 UI层对于竞争技术的奋斗并不陌生。 有了提供的所有选项,您将如何选择? 尽管没有作家能为您做出选择,但我们可以做的是向您介绍您可能要考虑的另一种选择,希望它会引起您足够的兴趣并尝试一下。 在本文中,我将向您介绍Apache Wicket。

您可能会对文章的标题感到怀疑,对于我编写的大多数应用程序,Wicket是我偏爱的UI框架。 您是否最终对这个伟大的框架抱有相同的热情–还是它适合您想要编写的应用程序类型–取决于您和您的情况。 但是,继续阅读,您可能会发现另一种很棒的技术可以添加到您的“ go-to”堆栈中。

Wicket是一个面向组件的Java Web框架,致力于简化编写可重用代码的过程。 它不需要XML配置(除了标准的web.xml部署描述符中的几行内容),因此可以刷新使用。 它鼓励逻辑与标记之间的清晰区分,从而满足大多数程序员对顺序感的需求。 使用Wicket,您的代码是“仅Java”,而标记是“仅HTML”。 这使“ HTML专家”更容易地协助该项目,而不必担心弄乱某些东西,而不必学习复杂的模板语言,参数名称和值等。

Wicket吸引了一个热爱面向对象编程的人。 页面上的每个组件都是一个 真实的 Java对象。 它可以像任何Java对象一样保持状态并执行有用的功能。 这样做的好处是,此状态通过Web请求保持不变,以向您抽象无状态超文本传输​​协议的复杂性。 想象一下,您的页面在侧面导航栏中具有手风琴样式的面板,并且在主内容区域中具有复杂的数据表。 用户进入此页面并展开手风琴的一部分。 在您的代码中,您可以调用 setExpandedSection(index) ,也可以 在其上设置 setExpanded(true) ,在其他 示例 上设置false。 无论是对组件进行建模,还是可以将用户选择作为常规Java成员变量存储在手风琴组件或其子组件中。 现在,当用户单击一个链接来还原您的复杂数据表时,该表本身不需要了解手风琴组件或页面上任何其他组件的状态。 但是,手风琴组件以及所有其他组件会在用户提出的各种其他请求中自动保留其状态。

为了达到上述级别的UI复杂性,许多方法要求页面上的每个组件都具有页面上其他组件的一定程度的知识。 在这些其他技术中,当我单击一个组件中的链接时,它需要将其他组件的状态嵌入到其请求中。 也许它在URL中,或者它存储在会话中。 也许每个组件都有一个cookie前缀,并将其状态存储在cookie中。 或者,也许您的程序员会花大量时间在一个复杂的XML文件中配置组件之间的交互,该XML文件将各种组件的输入和输出联系在一起。 无论如何,这都不是简单的编程-有些甚至根本都不是编程-它需要不断地意识到您正在基于无状态协议编写有状态应用程序这一事实。

Wicket通过为我们的Web应用程序的HTTP交互引入一种状态引擎来解决此问题。 当用户首次访问页面时,将实例化Java类的实例。 构造该类时,就像实例化任何其他Java类一样,即 构造新的MyComponent(“ SomeID”)时 ,可以构造其组件

当这些组件的状态更改时,它们会将状态存储为具有实际类型的真实变量。 但是,在初始页面呈现之后,Wicket不会丢弃实例化的页面对象。 整个组件层次结构存储在用户会话中(以及本文中未介绍的有效方式以及磁盘)中。 因此,当他们单击链接以在页面上执行某些操作,提交表单等时,所有状态仍包含在这些类中。 这就是使它变得如此简单(和有趣!)的原因。

现在,大多数人认为的第一件事是“不使用 大量 内存吗?” 答案是 否定的 许多人迷失了这种方法是浪费内存的陷阱,但是随后发现这等于过早的优化。 这并不是说您在使用Wicket时不能踢自己–您当然可以做会使会话大小爆炸的事情。 我们将在下面的“什么是模型”一节中讨论更多有关此的内容。 如果您真的担心能够验证我的主张,即Wicket不会比其他框架使用更多的内存,那么您可能需要查看这篇文章 和另一篇文章,以更详细地比较Wicket与其他几种框架 (均由彼得·托马斯(Peter Thomas)。 如果您现在只能信任我,请继续。


事不宜迟,您如何直接跳进去尝试Wicket? 如果您安装了Maven,这将再简单不过了。 只需跳转到 http://wicket.apache.org/start/quickstart.html ,填写所需的软件包组和工件ID并运行提供的命令。 将会为您生成一个有效的快速入门应用程序。 运行 mvn eclipse:eclipse (或您的IDE的等效文件)将设置项目依赖项。 如果使用的是Eclipse,请转到文件 菜单 ,选择 导入 ,然后 导入现有项目 并选择生成快速入门的目录。 找到 Start

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值