Declaring body-content for a Tag File
The only way to declare body-content type for a Tag File is with another new Tag File directive, the tag directive. The tag directive is the Tag File equivalent of the page directive in a JSP page, and it has a lot of the same attributes plus an important one you won’t find in page directive—body-content.
For a custom tag, the <body-content> element inside the <tag> element of a TLD is mandatory! But a Tag File does not have to declare <body-content> if the default—scriptless—is acceptable. A value of scriptless means you can’t have scripting elements. And scripting elements, remember, are scriptlets (<% ... %>), scriptlet expressions (<%= ... %>), and declarations (<%! ... %>).
In fact, the bodies of Tag File tags are never allowed to have scripting, so it’s not an option. But you can declare body-content (using the tag directive with a body-content attribute) if you want one of the other two options, empty or tagdependent.
You CANNOT use scripting code in the body of a Tag File tag!
The body-content of a Tag File defaults to “scriptless”, so you don’t have to declare body-content unless you want one of the OTHER two options: “empty” (nothing in the tag body) or “tagdependent” (treats the body as plain text).
Inside the Tag File with a tag directive (Header.tag)

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access