The Unified Expression Language (EL) used by JSF is not a programming language. You should not write method calls in it. Its primary purpose is to reference, not to do.
If this is a button that is going to be repeated on each row of an h:dataTable, there's a much different way you should code it. It it's supposed to be a single button on a page, I'm not quite sure, since some parts of your example don't seem to be what you'd use in relation to other parts.
Also, I'm not sure what this "a:id" attribute is, but for the ordinary xml "id" attribute cannot be given a computed value. It has to be hard-coded.
An IDE is no substitute for an Intelligent Developer.
Don't mess with me you fool! I'm cooking with gas! Here, read this tiny ad:
RavenDB is an Open Source NoSQL Database that’s fully transactional (ACID) across your database