You've declared plain HTML <input>
elements and the XML parser is somehow not been configured to use http://www.w3.org/1999/xhtml
as global XML namespace. Add it yourself.
<ui:composition xmlns="http://www.w3.org/1999/xhtml">
Update (10 years later): this kind of warning is after all completely wrong in context of JSF and Facelets whereby [somehtmltag]
is a plain HTML tag name such as html
, style
, div
, p
, etc.
Warning: This page calls for XML namespace declared with prefix [somehtmltag] but no taglibrary exists for that namespace.
It's caused by a bug in Mojarra's implementation of the code responsible for building the component tree based on tags found in a XML document. The original thought was to warn the developer about any namespaced tag which is not registered, such as <x:foo>
without a xmlns:x="..."
. It would then be rendered "plain vanilla" instead of parsed as a real component. However the code responsible for this warning unintentionally also matches namespaceless tags such as plain HTML.
It also caused the incorrect implication that declaration of the default XML namespace is required in Facelets while it's technically really optional. It's at most only useful for tooling, e.g. the IDE being able to autocomplete plain HTML elements when the IDE itself isn't sufficiently smart to imply them based on file extension.
As per issue 4872 it's been fixed in Mojarra.
The default XML namespace of http://www.w3.org/1999/xhtml
is optional in Facelets. You can safely omit it from your XHTML files to keep the code lean.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…