Posted under JSF
Permalink
Tags Eclipse, Facelets, Gotcha, JSF, Taglib, Tip
Update 6/7/2011
I hit this problem again when accidentally ignoring the Eclipse warning.
This time, the problem prevented <c:if> tags from working correctly – the tags always tested as true. This was especially nasty as the cause did not appear related to the problem I was having. See this issue in Mantis about the problem.
Original Post
I was using the following namespace declaration in order to use JSTL (c:if etc.) on a Facelets/JSF 2.0 page, as I had done successfully previously under JSF 1.2:-
xmlns:c=”http://java.sun.com/jstl/core“
This gave rise to the following warning in Eclipse:-
NLS missing message: CANNOT_FIND_FACELET_TAGLIB in: org.eclipse.jst.jsf.core.validation.internal.facelet.messages
The namespace is incorrect, and as pointed out here (in Ryan Lubke’s comment on the post) should now be:-
xmlns:c=”http://java.sun.com/jsp/jstl/core“
This fixed the problem. A complete listing of the namespaces for the tag libraries is also available in edition 3 of Core JavaServer Faces, at the start of Chapter 4, page 101 – (edition 2 did not have this table; it is a useful addition).