Java 如何将内部css(<;style>;)添加到Wicket页面
我需要使用Java 如何将内部css(<;style>;)添加到Wicket页面,java,wicket,Java,Wicket,我需要使用将我的css文件作为内部css包含在内。我怎么能用Wicket做到这一点 我知道renderHead()和如前所述。但这会产生外部联系。这是用来发送邮件的,所以我需要它包含在生成的html中。不需要尝试这个 使用类似于此方法的renderHead方法实现的面板不会有这样的效果吗 void renderHead(IHeaderResponse response) { StringBuffer myCSS = new StringBuffer(); File file =
将我的css文件作为内部css包含在内。我怎么能用Wicket做到这一点
我知道
renderHead()
和
如前所述。但这会产生外部联系。这是用来发送邮件的,所以我需要它包含在生成的html中。不需要尝试这个
使用类似于此方法的renderHead方法实现的面板不会有这样的效果吗
void renderHead(IHeaderResponse response) {
StringBuffer myCSS = new StringBuffer();
File file = new File("global CSS");
BufferedReader reader = new BufferedReader(new FileReader(file));
String s = null;
while ((s = reader.readLine()) != null) {
myCSS.append(s).append(System.getProperty("line.separator"));
}
reader.close();
response.renderCSS(myCSS, "notreallyneeded");
}
在整个过程中,对每一个错误处理和适当的资源关闭进行管理
请注意,“notreallneeded”在非Ajax环境(如电子邮件)中并不是真正需要的。根据JavaDoc,这也可以是
null
。以下是我最终实现它的方式。感谢Nicktar指出了正确的方向
@Override
public void renderHead(IHeaderResponse response) {
try {
InputStream in = new CssPackageResource(BusinessMail.class,
"style.css", getLocale(), "?", "?")
.getCacheableResourceStream().getInputStream();
String data = new java.util.Scanner(in).useDelimiter("\\A").next();
response.renderCSS(data, "notneeded");
} catch (ResourceStreamNotFoundException e) {
logger.error("Could not load css", e);
}
}
如果我理解“内部”,请在wicket html中使用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/" xml:lang="en" lang="en">
<wicket:head>
<style type="text/css">
<!--
.aCaption {
/* display: block; */
/* background-color: green;*/
}
-->
</style>
</wicket:head>
// rest of classic wicket page ...
<body> .... etc
//其余的经典小门页。。。
.... 等
只需在HTML文件中键入它,还是我遗漏了什么?@Nicktar也许目标是内联css文件?@XaviLópez谢谢。。。我想我看到了那里的问题……有趣的是,我以前没有见过renderCSS
。听起来很有希望。现在,如果我们能找到一种方法,以“wicket方式”访问CSS文件,那么,我想一个文件名相对于应用程序根的。。。