The <o:conditionalComment> component renders a conditional comment. Conditional comments are an IE specific feature which enables the
developer to (out)comment blocks of HTML depending on whether the client is using IE and if so even which version. They are often seen in combination with
CSS stylesheets like so:
<!--[if lte IE 7]>
<link rel="stylesheet" href="ie6-ie7.css" />
<![endif]-->
However, Facelets renders the comment's contents HTML-escaped which makes it unusable.
<!--[if lte IE 7]>
<link rel="stylesheet" href="ie6-ie7.css" />
<![endif]-->
Also, if jakarta.faces.FACELETS_SKIP_COMMENTS context param is set to true then it will even not be rendered at all. You would need
to workaround this with an ugly <h:outputText escape="false">.
<h:outputText
value="<!--[if lte IE 7]><link rel="stylesheet" href="ie6-ie7.css" /><![endif]-->"
escape="false" />
This component is designed to solve this problem.
<o:conditionalComment if="lte IE 7">
<link rel="stylesheet" href="ie6-ie7.css" />
</o:conditionalComment>
Note that you cannot use this with <h:outputStylesheet> as it would implicitly be relocated as direct child of
<h:head>.
| Info | Value |
|---|---|
| Component Type | org.omnifaces.component.output.ConditionalComment |
| Handler Class | None |
| Renderer Type | None |
| Description | None |
| Name | Required | Type | Description |
|---|---|---|---|
binding | false | jakarta.el.ValueExpression
(must evaluate to jakarta.faces.component.UIComponent)
| The ValueExpression linking this component to a property in a backing bean. |
id | false | jakarta.el.ValueExpression
(must evaluate to java.lang.String)
| The component identifier for this component. This value must be unique within the closest parent component that is a naming container. |
if | true | jakarta.el.ValueExpression
(must evaluate to java.lang.String)
| The if condition of the conditional comment. This is exactly the value you would use in |