【问题标题】:dynamic CSS in JSFJSF 中的动态 CSS
【发布时间】:2011-10-09 23:54:34
【问题描述】:

我阅读了this 关于动态 CSS 的文章。

我想生成基于 db 参数的 CSS。

类似于<link rel="stylesheet" href="mydynamicCss.ashx?cssCode=mainPage" type="text/css"/>的东西

在 JSF 中实现它的最佳方式是什么?

我正在使用 JSF2.0

【问题讨论】:

  • 另一种方法是在您的 css 文件中使用 EL,假设您将它们视为资源 (<h:outputStylesheet library="css" name="yourcss.css"/>)。例如,您可以获得ExternalContext,并尝试用它做一些事情。虽然我现在想不出从 css 文件中获取参数的方法。
  • 使用这个能力有什么好处?我没有预定义的 CSS 我想动态创建它
  • 哦,好吧。那么Servlet确实是最好的选择。如果你想要每个会话一个,没问题。只需在 Servlet 中执行此检查即可。

标签: java css jsf dynamic jsf-2


【解决方案1】:

我宁愿为此目的使用一个额外的 servlet,可能是使用速度/freemarker 的东西,或者可能有支持 css 生成的现有库。 href 链接将映射到这个 servlet 而不是 JSF servlet。我还没有真正看到 JSF 的 css taglib。

【讨论】:

  • 但是,我不希望每次加载页面时都发生这种情况。每个会话只有一次
  • 如果您在 URL 中编码参数,您可以设置缓存或使用 HTTP 304 Not modified 回答。另一方面,这两个模板库比 JSF 快得多,因此它几乎不会影响性能 - 假设您在包含标题的情况下进行整页刷新。
  • 我不明白你对 HTTP 403 的回答
  • 你可以在这里找到一些信息docstore.mik.ua/orelly/java-ent/servlet/ch03_06.htm
【解决方案2】:

我不太明白你的意思,但我们使用条件创建“动态”CSS。

例如

<a:repeat var="foo" value="#{foos}">
  <li class="#{foo % 2 == 0?'odd':'even'}">
   ....
</a:repeat>

【讨论】:

  • 没有。我不想将它用于每个组件。我想动态生成 CSS
猜你喜欢
  • 2012-02-03
  • 2023-03-03
  • 2011-01-26
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多