apache开源项目 -- Wicket
【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的更多相关文章
- 15个非常重要的Apache开源项目汇总
15个非常重要的Apache开源项目汇总 自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.本文列举了15个多年来非常重要的Apache项目,这些项目不仅对开源运动来说 ...
- apache开源项目--Apache Drill
为了帮助企业用户寻找更为有效.加快Hadoop数据查询的方法,Apache 软件基金会发起了一项名为“Drill”的开源项目.Apache Drill 实现了 Google's Dremel. Apa ...
- 15个具有高度影响力的Apache开源项目
自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.其中成功的项目有Geronimo,有Tomcat,有Hadoop,有如今成了大数据王国关键车毂的分布式计算系统. 虽然 ...
- apache开源项目 --Struts
struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...
- apache开源项目 -- Tuscany
tuscany是Apache组织关于SOA实现的一个开放源码的工程项目,目前处于孵化期阶段. 该项目主要基于SCA,SDO,DAS等技术上实现的. SCA 的基本概念以及 SCA 规范的具体内容并不在 ...
- apache开源项目--Mahout
Apache Mahout 是 Apache Software Foundation (ASF) 开发的一个全新的开源项目,其主要目标是创建一些可伸缩的机器学习算法,供开发人员在 Apache 在许可 ...
- apache开源项目--CouchDB
Apache CouchDB 是一个面向文档的数据库管理系统.它提供以 JSON 作为数据格式的 REST 接口来对其进行操作,并可以通过视图来操纵文档的组织和呈现. CouchDB 是 Apache ...
- apache开源项目--Cassandra
Apache Cassandra是一套开源分布式Key-Value存储系统.它最初由Facebook开发,用于储存特别大的数据.Facebook目前在使用此系统. 主要特性: 分布式 基于column ...
- apache开源项目--nutch
Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch的创始人是Doug Cutting,他同时也是Lucene.Hado ...
随机推荐
- java.util.ConcurrentModificationException 解决办法(转)
今天在项目的中有一个需求,需要在一个Set类型的集合中删除满足条件的对象,这时想当然地想到直接调用Set的remove(Object o)方法将指定的对象删除即可,测试代码: public cla ...
- JS Web打印,实现预览新样式
问题描述: JS实现Web打印,要求打印前一种样式,打印预览时新样式 问题解决: (1)设置打印时的css样式,设置打印前的css样式 注: 以上为print. ...
- [原]android不支持命名的semaphore
之前sem_open在iOS上, 创建命名的semaphore没有问题 (iOS不支持匿名的semaphore), 但是现在Android平台的sem_open时候报错,返回ENOSYS. 命名的se ...
- 正确使用stl vecotr erase函数
erase函数要么删作指定位置loc的元素,要么删除区间[start, end)的所有元素. 返回值是指向删除的最后一个元素的下一位置的迭代器 Parameters All parameters ar ...
- zoj 2777 Visible Lattice Points(欧拉函数,基础)
题目 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<algo ...
- java基础知识回顾之javaIO类--File类
File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读, ...
- [杂题]URAL2047. Maths
题意:构造一个长度为n的串,使得 除了第一个以外,每个位置的前缀和的因子个数恰好等于该位置上的数. n$\le 100000$ 举个例子$a_i$:2 4 6 6 4 8 ...
- [主席树]ZOJ2112 && BZOJ1901 Dynamic Rankings
题意:n个数,q个询问 (n<=50000, q<=10000) Q x y z 代表询问[x, y]区间里的第z小的数 C x y 代表将(从左往右数)第x个数变成y 上篇介绍了在 ...
- leetcode 4 : Median of Two Sorted Arrays 找出两个数组的中位数
题目: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the ...
- Hibernate逍遥游记-第12章 映射值类型集合-005对集合排序Map(<order-by>\<sort>)
1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...