If JSF and HTML were programming languages, JSF would be
Java and HTML would be assembly language. You're thinking low-level where you need to think high level. JSF pages are designed in terms of functional elements rather than display primitives, so using things like the div and span tags are not really a good idea. JSF tags generally create whatever low-level tags they need.
Unfortunately, the set of standard JSF tags is far from a complete set of everything you need to make the perfect web page. Sometimes you end up needing to inject some raw HTML. The recommended way to do that is to use the <verbatim> JSF tag to wrap it. The verbatim tag works best when its contents are self-contained, however. Container tags like div/span don't work that well, since <f:verbatim><div></f:verbatim> isn't a proper pairing (no </div> tag). On the other hand, <f:verbatim><hr/></f:verbatim> is OK, allowing for the fact that the hr tag doesn't understand its surroundings.
[ October 02, 2008: Message edited by: Tim Holloway ]
[ October 02, 2008: Message edited by: Tim Holloway ]