我刚注意到<h:outputStylesheet/>
有一个转换器属性。将虚拟(直通)转换器连接到它后,没有任何反应。仔细观察,看起来即使按下浏览器刷新按钮,转换器也不会被调用。
这个属性对任何事情都有好处吗?它只是作为各种设计决策的副作用吗?
我问的原因是用less或类似的方式执行一些客户端或服务器端的css处理会很好,我认为这个属性可能有帮助。
答案 0 :(得分:12)
这个属性对任何事情都有好处吗?它只是作为各种设计决策的副作用吗?
这确实是“按设计”,因为该组件扩展了UIOutput
。它确实没有使用转换器。
我问的原因是,用较少或类似的方式执行一些客户端或服务器端css处理会很好,我认为这个属性可能会有所帮助。
您可以在<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}
可以是会话或应用程序作用域的托管bean。