I'm just guessing, but probably the page is evaluated before you put the message.
Maybe is easier have something like:
<h:panelSomething rendered="#{!accessControl.userHasAccess}" >
You don't have
</h:panelSomething>
<h:panelSomething rendered="#{accessControl.userHasAccess}" >
... display the list...
</h:panelSomething>
(forgive me if I have small notation details, is been a while since I used
JSF last time)