创建并扩展Apache Wicket Web应用
2010-06-30 00:00:00 来源:WEB开发网替换组件
用Maven的WAR插件替换类、配置或其他资源听起来是个很糟糕的主意。在大多数情况下也的确如此。不过在个别情况下也没有更为简单的选择。如果我们快速检索一遍Wicket Web应用的源代码,就会发现大部分Wicket组件都是用new关键字实例化的。这种技术很常见,也被视为标准做法。那我们如何在派生项目里修改这些类的行为呢?你的第一反应也许是利用Spring的IoC容器把组件注入到特定的Web页面,尝试使用IoC容器内置的Bean替换机制。这听起来不错,但我们在Wicket-Spring集成项目的Wiki页面上看到,“借助IoC容器注入依赖产生的问题,大部分是因为Wicket是一个非托管的框架,而且Wicket组件和模型往往会被序列化”。简言之,就是Wicket不会管理组件的生命周期,而序列化则可能导致一些严重的问题,比如在集群中。即便我们找到了该问题的解决方法,那XHTML标记文件又怎么办呢?每个模板文件都关联到一个特定的Java类文件。举例来说,/com/example /modular/pages/WarsawPage.html绑定到com.example.modular.pages.WarsawPage类。要解决这个问题,我们还需要一种机制来妥善处理这些关联。比如说,该机制要能动态替换、实例化类,还可以与负责绑定标记文件的Wicket机制交互。这种机制可以单独拿出来开篇讲述,这里先略过。
我们看到,这个问题的确让应用的扩展变得复杂起来。正如我在文章开头写的,我们可以试试maven-war-plugin的缺省重写功能,不要经常修改基项目。
Global项目中,maven-war-plugin重写了Warsaw项目的文件,而没有任何确认对话框或警告信息。这是插件的缺省设置,这种情况需要这样使用。要想了解它在实际中是如何工作的,请看附带的示例应用代码。
回到Spring
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››创建基于PPTP的站点到站点VPN连接:ISA2006系列之...
- ››创建基于L2TP的站点到站点的VPN连接:ISA2006系列...
- ››扩展WebSphere Portal V6个性化功能
- ››创建一个Twisted Reactor TCP服务器
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››创建Windows Mobile上兼容性好的UI 程序
赞助商链接