2009年4月29日星期三

Wicket1.4中调用外部资源的方法

在wicket中,要使用js或css文件,需要将这些文件包装成ResourceReference,通过ResourceReference就可以将js或css文件加入到wicket页面对象中。因此,我分别创建了2个Enum对象:DefaultJavascript和DefaultStyle,如下:
public enum DefaultStyle {
Header("header.css"), MainPage("main-page.css");
private String cssName;
DefaultStyle(String cssName) {
this.cssName = cssName;
}

public ResourceReference getResouceReference() {
return new ResourceReference(DefaultStyle.class, cssName);
}
}
通过DefaultStyle来将css文件封装成ResourceReference对象,js文件要照此处理,比较方便。

要将ResourceReference加入到wicket中,在wicket1.4版本中,
加css文件:
add(CSSPackageResource.getHeaderContribution(DefaultStyle.Popup
.getResouceReference()));
加js文件:
add(JavascriptPackageResource.getHeaderContribution(DefaultJavascript.JQuery
.getResouceReference()));
稍微麻烦一点的是对图片的处理,一般存在三种方式:
  1. 如果在页面中使用了Img标签,那可以按上面js或css方式来进行处理,通过ResourceReference对象来包装。
  2. 如果是在css文件中直接使用图片,可以根据css文件与图片文件所在的相对路径来直接设置。譬如:jquery.tab.css文件放在com.deversoft.web.tab包下,tab-bottom.gif图片放在com.deversoft.web.tab.images包下。那在css文件中可以直接通过images/tab-bottom.gif来进行使用。
  3. 如果是在js文件中直接使用图片,需要引用图片ResouceReference对象的路径。譬如,还是上面的图片tab-bottom.gif,在js中调用,就需要这样调用:resources/com.deversoft.web.tab.DefaultImage/tab-bottom.gif。这其实和第一种方式以相同的。

没有评论:

发表评论