The following dataTable shows "???messageId???" instead of the correct id:
<p:dataTable id="msgTable" var="msg" value="#{msgModel.messages}">
<p:column headerText="Id">
<h:outputText value="#{msg.messageId}" />
</p:column>
</p:dataTable>
After some tedious debugging, I found that it worked when renaming the var to something else than "msg"
<p:dataTable id="msgTable" var="msg2" value="#{msgModel.messages}">
<p:column headerText="Id">
<h:outputText value="#{msg2.messageId}" />
</p:column>
</p:dataTable>
In what context is "msg" a reserved keyword ? I could not find any documentation about it for html, Javascript or JSF ?