WEB开发网
开发学院软件开发Java 创建并扩展Apache Wicket Web应用 阅读

创建并扩展Apache Wicket Web应用

 2010-06-30 00:00:00 来源:WEB开发网   
核心提示: WicketStuff注解 这个软件包提供了智能的装载机制,利用@MountPath类注解和AnnotatedMountScanner工具类可以简化Wicket网页的添加和注册,创建并扩展Apache Wicket Web应用(5),从清单6和清单7可以看到,配置非常简单,就是该页面会覆盖War

WicketStuff注解

这个软件包提供了智能的装载机制,利用@MountPath类注解和AnnotatedMountScanner工具类可以简化Wicket网页的添加和注册。从清单6和清单7可以看到,配置非常简单。

清单6:WicketStuff AnnotatedMountScanner的使用示例。

// package和import信息 
public class WicketApplication extends WebApplication { 
 
 public Class getHomePage() { 
  return HomePage.class; 
 } 
 
 @Override 
 protected void init() { 
  super.init(); 
  new AnnotatedMountScanner().scanPackage("com.example.modular.**.pages").mount(this); 
 } 
} 

Wicketstuff-annotations项目使用Sping框架的 PathMatchingResourcePatternResolver来查找classpath中匹配的资源。在上面的例子里,解析器会扫描 com.example.modular包里所有的“pages”子包,找到所有使用@MountPath注解的类。

清单7:WicketStuff @MountPath注解的使用示例。

package com.example.modular.warsaw.pages; 
 
import org.apache.wicket.markup.html.WebPage; 
import org.wicketstuff.annotation.mount.MountPath; 
 
@MountPath(path = "warsaw") 
public class WarsawPage extends WebPage { 
 // 现在不需要什么内容 
} 

借助这一技术,我们在Warsaw和Global项目中都能定义并装载Web页面。Maven的WAR插件确保部署的Global能包含这些类,目录结构与Warsaw的保持一致。即使Web页面位于不同的包里,比如com.example.modular.warsaw.pages和 com.example.modular.global.pages,AnnotatedMountScanner也能确保正确装载了网页。但我们要是在 Global项目的com.example.modular.warsaw.pages包里新建一个Web页面,会发生什么呢?这种情况存在风险,就是该页面会覆盖Warsaw项目里定义的同名页面。反过来说,这种做法却有助于我们从Global项目级别修改Warsaw项目的组件。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:创建 扩展 Apache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接