【infoq】

  Apache Wicket是一个功能强大、基于组件的轻量级Web应用框架,能将展现和业务逻辑很好地分离开来。你能用它创建易于测试、调试和支持的高质量Web 2.0应用。假设其他团队交付了一个基于Wicket的应用,你必须扩展该应用,但又不能修改他们的代码;或者你必须要交付一个模块化的Web应用,能让 其他团队很容易地扩展和定制。本文介绍的正是如何在不引入多余源代码、标记和配置的情况下解决此问题。我们用maven-war-plugin合并项目, 用wicketstuff-annotations动态装载网页,用Spring框架作为控制反转(IoC)容器,以此达到该目的,并借助wicket- spring-annot项目和Maven依赖的微调对应用进行增强。

本文旨在展示如何从头开始设计和构建一个高度模块化、可扩展、基于Wicket的Web应用。文章会指导读者完成这一过程的所有步骤,从编写初始的Maven POM文件、选择必需的依赖开始,直到完成组件的配置、服务的自动装配(autowire)及网页的装载。

本文包括两个Maven管理的示例应用——Warsaw和Global。Warsaw是进行了全面配置的Web应用,带有两个简单的Web页面。 Global依赖于Warsaw项目,引入了一个服务和几个新的Web页面,还修改了Warsaw组件的拷贝。这两个Web应用都打包为WAR文件,并进 行了配置,能在Jetty或其它Servlet容器中运行。在命令行运行mvn jetty:run-war命令即可轻松启动这两个应用。

  

【蒋倩兰】

  通常,这意味着大量的专门的代码在Web应用程序处理状态管理。而Wicket不会让你停止关于服务器状态的思考,他在朝着使用更容易更透明化管理的方向上经过了一个漫长的道路。

在Wicket中,所有的服务器端的状态会自动进行管理。你将永远不会直接使用HttpSession对象或类似的包装器来存储状态。相反,状态与组件相 关联。每个服务器端页面组件保存有一个嵌套层次的有状态组件,每个组件的模型的最后是一个POJO(普通的Java对象)。Wicket包含这些页面的地 图中每个用户的会话。这个页的映射(每个页面上的组件层次结构)的目的之一是让框架隐藏了如何将组件和模型访问的所有细节。你只需要处理简单、熟悉的 Java对象,Wicket处理的事情,比如URLs,session ID和GET/POST请求。

参考:

http://www.infoq.com/cn/articles/modular-wicket/

http://yingzhuo.iteye.com/blog/1682066

http://blog.csdn.net/laner0515/article/details/35558351

apache开源项目 -- Wicket的更多相关文章

  1. 15个非常重要的Apache开源项目汇总

    15个非常重要的Apache开源项目汇总 自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.本文列举了15个多年来非常重要的Apache项目,这些项目不仅对开源运动来说 ...

  2. apache开源项目--Apache Drill

    为了帮助企业用户寻找更为有效.加快Hadoop数据查询的方法,Apache 软件基金会发起了一项名为“Drill”的开源项目.Apache Drill 实现了 Google's Dremel. Apa ...

  3. 15个具有高度影响力的Apache开源项目

    自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.其中成功的项目有Geronimo,有Tomcat,有Hadoop,有如今成了大数据王国关键车毂的分布式计算系统. 虽然 ...

  4. apache开源项目 --Struts

    struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...

  5. apache开源项目 -- Tuscany

    tuscany是Apache组织关于SOA实现的一个开放源码的工程项目,目前处于孵化期阶段. 该项目主要基于SCA,SDO,DAS等技术上实现的. SCA 的基本概念以及 SCA 规范的具体内容并不在 ...

  6. apache开源项目--Mahout

    Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可 ...

  7. apache开源项目--CouchDB

    Apache CouchDB 是一个面向文档的数据库管理系统.它提供以 JSON 作为数据格式的 REST 接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现. CouchDB 是 Apache ...

  8. apache开源项目--Cassandra

    Apache Cassandra是一套开源分布式Key-Value存储系统.它最初由Facebook开发,用于储存特别大的数据.Facebook目前在使用此系统. 主要特性: 分布式 基于column ...

  9. apache开源项目--nutch

    Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch的创始人是Doug Cutting,他同时也是Lucene.Hado ...

随机推荐

  1. 【UVA】【10828】随机程序

    数学期望/高斯消元/马尔可夫过程 刘汝佳老师白书上的例题- -b 本体不满足拓扑关系,但马尔可夫过程是可以高斯消元解的…… 用「高斯·约当消元」更方便! //UVA 10828 #include< ...

  2. 【POJ】【2420】A Star not a Tree?

    模拟退火 Orz HZWER 这题的题意是在二维平面内找一点,使得这点到给定的n个点的距离和最小……0.0 模拟退火算法请戳这里 //POJ 2420 #include<ctime> #i ...

  3. isEmpty()与equals()、==“”区别

    isEmpty方法源码:public static boolean isEmpty(String str) { return (str == null) || (str.length() == 0); ...

  4. PHP对XML文件操作类讲解

    <?phpclass XML{    private $dom;        function __construct ()    {        $this->dom = new D ...

  5. java 中 ==和equals 的区别

      Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolea ...

  6. PhotoSwipe简介(PhotoSwipe是一个适合在触摸屏手机上使用的相册展示包)

    官方介绍PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone.iPad.黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品 ...

  7. 创建和编辑 crontab 文件

    http://docs.oracle.com/cd/E24847_01/html/819-6951/sysrescron-24589.html 创建和编辑 crontab 文件 创建 crontab  ...

  8. 搭建网站 discuzx ecshop php

    1.http://www.comsenz.com/downloads/install/discuzx下载

  9. P1005 采药

    P1005 采药 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2005复赛普及组第三题 描述 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的 ...

  10. Spring IoC — 基于Java类的配置

    普通的POJO只要标注@Configuration注解,就可以为Spring容器提供Bean定义的信息了,每个标注了@Bean的类方法都相当于提供一个Bean的定义信息. 基于Java类的配置方法和基 ...