Tapestry5中可以使用css,但是它的方式有些不同。
一般情况下,我们把css文件放到WEB-INF文件夹下面,这基本上已经是一个规定了。假如我们把css放到了,WEB-INF下的css文件夹中了,并且文件的名字为stylesheet.css。
那么我们可以在template(.tml)文件中,这样引入:
<link rel="stylesheet" type="text/css" href="${context:css/stylesheet.css}" />
其中的${context}会在render的时候,指定为我们项目的根目录。
另外还有一种方法就是在.java文件中引入:
@Import(stylesheet="context:css/stylesheet.css")
以上这条注解是放到java类的上面的。另外一点儿值得注意的是,stylesheet这个属性是一个String类型的数组,所以说如果引入的css文件有多个时候呢,需要像下面这样实现:
@Import(stylesheet = { "context:css/style.css", "context:css/sheet.css" })
还有一点,是个人发现的,只是根据本人的项目来说的。就是以上两种情况,大部分情况下是一样的,但是如果我们想要override掉Tapestry5框架里面的样式的话,需要按照第二种方式来实现。尽管官方文档中说,我们提供的css会后被加载。
还有一点儿就是说我们可以完全不要Tapestry的样式表。就是在AppModel.java中追加如下的代码:
@Contribute(MarkupRenderer.class) public static void deactiveDefaultCSS(OrderedConfiguration<MarkupRendererFilter> configuration) { configuration.override("InjectDefaultStylesheet", null); }