JSF h:outputStylesheet转换器 - 动态css?

Dis*_*tum 5 css java jsf-2

我刚注意到<h:outputStylesheet/>有一个转换器属性.将虚拟(直通)转换器连接到它后,没有任何反应.仔细观察,尽管点击浏览器刷新按钮,似乎甚至没有调用转换器.

这个属性对任何事都有好处吗?它只是作为各种设计决策的副作用吗?

我问的原因是,用较少或类似的方式执行一些客户端或服务器端的css处理会很好,我认为这个属性可能会有所帮助.

Bal*_*usC 12

这个属性对任何事都有好处吗?它只是作为各种设计决策的副作用吗?

自组件扩展以来,这确实是"按设计" UIOutput.它确实没有使用转换器.


我问的原因是,用较少或类似的方式执行一些客户端或服务器端的css处理会很好,我认为这个属性可能会有所帮助.

你可以在加载的CSS资源中以通常的方式使用EL <h:outputStylesheet>.这最初是为了正确解析背景图像资源而实现的.

.some {
    background-image: url(#{resource[images/some.png]});
}
Run Code Online (Sandbox Code Playgroud)

上面的例子假设图像在/resources/images/some.png.如果您正在使用库,则需要在资源名称前加上前缀libraryname:.

.some {
    background-image: url(#{resource[somelibrary:images/some.png]});
}
Run Code Online (Sandbox Code Playgroud)

假设图像在/resources/somelibrary/images/some.png.

但除此之外,你基本上可以在CSS资源中使用EL来做其他事情.例如动态解析颜色,字体等.

.some {
    color: #{theme.color};
    font: #{theme.font};
}
Run Code Online (Sandbox Code Playgroud)

哪里#{theme}可以是会话或应用程序范围的托管bean.