apache wicket_您应该使用Apache Wicket的五个原因

apache wicket

Apache Wicket是一个基于Java的Web开发框架。 我觉得它没有得到应有的关注。 在过去的6年中,我一直将Wicket专业用于现实世界的项目,并为之热心!

在本文中,让我们看一下应该考虑使用它的五个原因。

1.简单的状态管理

编写Wicket应用程序的开发经验与桌面开发非常相似。 有时您几乎会忘记HTTP的无状态本质。 这是因为在Wicket中,网页及其所有组件(按钮,文本字段等)都是维护自己状态的Java对象。 组件的状态被序列化到用户的会话中,并在适当的时间反序列化。

简而言之,假设您有一个表单,其中包含用户可以填写并提交的字段。 在Wicket应用程序中,此表单,其字段和“提交”按钮都是创建并添加到网页的所有组件(Java对象)。 单击提交按钮时:

  1. 我们通常可以作为POJO的字段来自动访问用户输入。
  2. 我们不必将HTTP POST请求连接到GET请求。
  3. 我们也不需要考虑使用提交的值填充表单字段。 这是通过模型完成的, 模型是Wicket的核心概念。

2.标准HTML集成

与某些其他框架不同,Wicket中HTML不需要任何特殊标记。 实际上,您可以采用任何现有HTML并将其与Wicket应用程序集成,而几乎无需进行任何更改。 将HTML标签连接到Wicket组件仅需要一个属性: wicket:id让我们看一个示例:

<div wicket:id= "userName" > Roman </div>
add ( new Label ( "userName" , getUsername ()));

wicket:id “ userName”用于将HTML元素与Wicket组件连接。 Wicket标签组件将获取用户名并呈现div标签。 如果这现在还不完全合理,那是可以的。 当您开始使用它时,它就变成了第二自然且直观。

Wicket组件是一等公民,就像在一些流行的框架(如React)中一样,它们可以封装自己HTML标记/ CSS / JS。 允许我们创建高度可重用的代码。

3.不需要Java脚本(大多数情况下)

好的,显然,您最终将在某个时候编写JS代码。 但是,Wicket提供的AJAX支持意味着您无需为大多数常见任务编写自己的JS代码。 在后台,Wicket使用JQuery并自动将JS代码生成到网页中。

让我们以一个简单的页面示例为例,该页面包含一个下拉菜单以及取决于该下拉菜单选择的其他各种组件。 当选择更改时,我们需要更新页面上的这些其他各个组件。 实际上,这不需要任何Javascript代码

这使Wicket成为构建具有复杂业务逻辑的复杂接口的理想选择。

4.事件/消息系统

Wicket事件是组件和页面相互通信的一种方式。 使用此功能,我们可以创建非常复杂但又解耦的组件结构 。 组件可以广播消息,而无需知道谁将接收该消息。 当组件对特定类型的消息感兴趣时,它可以简单地注册以在广播该消息时得到通知。

组件可能会以这种方式向页面上的所有其他组件广播带有有效负载的关键更新事件:

send ( getPage (), Broadcast . BREADTH , new CriticalUpdate ( target , payload ));

如果某些组件有兴趣接收CriticalUpdate的组件,它将像这样注册:

public void onEvent ( IEvent <?> event ) {
   if ( event . getPayload () instanceof CriticalUpdate ) {
      String msg = (( CriticalUpdate ) event . getPayload ());
      //do something with the msg
   }
}

5.单元测试

Wicket的组件/状态性质意味着我们可以为前端编写单元测试,就像为服务层或数据访问层编写单元测试一样。 Wicket提供有用的实用程序,使编写单元测试变得简单。

让我们以一个简单的场景为例,在其他框架中进行测试可能并非如此。 我们有一个带有CRUD界面的网页:一个带有婴儿名字和删除按钮的表格。 具有文本字段和用于向表中添加新行的按钮的表单。

我们可以编写一个测试来渲染页面,模拟用户填写并提交表单,确保表格正确更新,模拟用户按下Delete按钮,等等。 所有这些都可以使用纯Java代码和JUnit来完成,而无需求助于Selenium,Puppeteer或类似的库。

6.完全开源

好的,我确实说了五个原因,但这有一个好处:Wicket是完全开源的,并且代码被设计为易于扩展/可定制的。 每当遇到默认行为或功能无法完全满足您的需求的情况时,它就像覆盖一些方法或扩展一个类以使其完全按需工作一样简单!

结论

我希望您已经听到足够多的信息,可以尝试一下Wicket。 如果您想了解更多信息:

  1. 前往包含大量文档的官方站点
  2. 看一下示例代码 ,该代码为许多常见的Web开发方案提供了代码。
  3. 看看我的博客CoderDreams ,我在那里定期发布有关Wicket和其他Web开发主题的文章。

翻译自: https://dev.to/romansery/five-reasons-you-should-use-apache-wicket-1lij

apache wicket

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值