JSF Component ID must start with a letter...

If you are are on ADF 11gR2 and seeing the following error when you run the application, then change the component id to match with JSF spec :)

The following exception occurred:
oracle.mds.exception.MDSRuntimeException: JSF Component ID must start with a letter.
at oracle.mds.internal.el.ELUtils.getValue(ELUtils.java:150)

See section 3.1.1 Component Identifiers in the following pdf
http://download.oracle.com/otn-pub/jcp/jsf-2.0-fr-full-oth-JSpec/jsf-2_0-fr-spec.pdf
It says ....
Every component may be named by a component identifier that must conform to
the following rules:
■ They must start with a letter (as defined by the Character.isLetter() method).
■ Subsequent characters must be letters (as defined by the Character.isLetter() method), digits as defined by
the Character.isDigit() method, dashes (‘-’), or underscores (‘_’).

To minimize the size of responses generated by JavaServer Faces, it is recommended that component identifiers be as short as possible.

If a component has been given an identifier, it must be unique in the namespace of the closest ancestor to that component that is a NamingContainer (if any).

Comments

Unknown said…
Your documentation link doesn't work for me. Could you correct it, or at least name the document (and section/chapter) that you are pointing at - maybe I already have that document.

Disclaimer

The views expressed on this blog are my own and do not necessarily reflect the views of my employer.