Netbeans errors "The attribute target is not defined in the component outputStylesheet"

facelets, jsf, netbeans

Solution

Look in the tag documentation of `<h:outputStylesheet>`. It indeed doesn't list `target` attribute. Perhaps you're confusing with the one from `<h:outputScript>`.

The `<h:outputStylesheet>` is by default always relocated to HTML `<head>`, for the very simple reason because it's illegal to have a `<style>` or `<link>` element inside the HTML `<body>`. The `<h:outputScript>` however is by default located at exactly the same location as where it's been declared. The `<script>` element as generated by it may be placed anywhere in the HTML `<head>` or `<body>`. You can let JSF auto-relocate this by setting the `target` attribute to `head` (will then appear in `<head>`) or `body` (will then appear in end of `<body>`).

Just remove it. If `target="body"` would theoretically have worked, it would only end up in illegal HTML output anyway.

<h:outputStylesheet library="css" name="style.css" />

Unrelated to the concrete problem, a resource library name of "css" is semantically wrong. Put it in the resource name.

<h:outputStylesheet name="css/style.css" />

See also:

- What is the JSF resource library for and how should it be used?

Problem

I have entered the following code: ``` <h:outputStylesheet library="css" name="style.css" target="body" /> ``` The problem is that it is giving me an error on target="body" saying: ``` The attribute target is not defined in the component outputStylesheet ``` In the html part if the html I have the following: ``` <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui" xmlns:pe="http://primefaces.org/ui/extensions"> ``` How can I solve this issue? Thanks

Original source

Related problems