我刚注意到 <h:outputStylesheet/>
具有转换器属性。在将虚拟(直通)转换器连接到它之后,什么也没有发生。仔细观察,尽管点击了浏览器刷新按钮,似乎甚至没有调用转换器。
这个属性有什么用吗?它只是各种设计决策的副作用吗?
我问的原因是用 less 执行一些客户端或服务器端的 css 处理会很好或类似的,我认为这个属性可能有帮助。
最佳答案
Is this attribute good for anything? Is it just there as a side effect of various design decisions?
这确实是“设计使然”,因为该组件扩展了 UIOutput
.它确实不使用转换器做任何事情。
The reason I ask is that it would be nice to perform some client- or server-side css processing with less or similar and I thought this attribute might help.
您可以在 <h:outputStylesheet>
加载的 CSS 资源中以通常的方式使用 EL .这最初是为了正确解析背景图像资源而实现的。
.some {
background-image: url(#{resource[images/some.png]});
}
上面的例子假设图像在 /resources/images/some.png
中.如果您使用的是图书馆,则需要在资源名称前加上 libraryname:
前缀.
.some {
background-image: url(#{resource[somelibrary:images/some.png]});
}
假设图像位于 /resources/somelibrary/images/some.png
中.
但除此之外,您基本上可以在 CSS 资源中使用 EL 来做任何其他事情。例如。动态解析颜色、字体等。
.some {
color: #{theme.color};
font: #{theme.font};
}
在哪里#{theme}
可以是 session 或应用程序范围内的托管 bean。
关于java - JSF h :outputStylesheet converter - dynamic css?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741903/