当我使用 OmniFaces graphicImage 标签时,如何为 SVG (byte[]) 提供样式选择器?

How can I supply style selector to SVG (byte[]) when I use OmniFaces graphicImage tag?

跟进

我正在使用 OmniFaces 2.1 快照,以便从 byte[] 数组输出 SVG 文件。我需要在 SVG URL 上添加 #a 后缀,以便在 SVG 中激活 CSS 样式。

示例图片:

<img src="/web/javax.faces.resource/ApplicationBean_getImageById_svg.xhtml?ln=omnifaces.graphic&amp;v=0&amp;p=106.1%23a">

如您所见,我的 #a 作为 %23a 附加在 URL 的右侧。

如果这是一个常规 URL 它将是

<img src="106.1.svg#a" />

然后它会选择 CSS 样式,在我的例子中,将这个标志的背景涂成黄色。

我真的希望 BalusC 能来救我。呵呵。 :)

根据 this commit, the <o:graphicImage> got a new fragment attribute. This should enable you to pass SVG view modes via URL fragment identifier. It's available in today's 2.1 SNAPSHOT.

例如

<o:graphicImage value="#{bean.svg(imageId)}" 
    type="svg" fragment="svgView(viewBox(0,200,1000,1000))" />