Details
Description
We use a prefix convention for our member variables. All private member fields being with 'm_'. For example, in my managed bean, I have a private field m_fileId with getFileId() and setFileId() methods.
This works fine when I use the faces-config.xml to configure my beans, because I just say the property-name is "fileId". This doesn't work for Shale-Tiger - I get an exception because there is no setter for m_fileId. As far as I know, the Java Beans spec doesn't mandate the name of the private variable, just the getters and setters.
Shale-Tiger should be more flexible to support this.
Here are three possible solutions:
1) The @Value annotation should take an optional property field to allow me to specify the property the field corresponds to. E.g.
@Value(value="#
{param.fileId}", property="fileId")private Long m_fileId;
2) The @Value annotation could be applied to methods or fields (much like JPA annotations). E.g.:
@Value("#{param.fileId}
")
public void setFileId(Long fileId)
3) I specify some mapping rules somewhere that define all member fields begin with "m_", so the annotation processor should handle that. That is similar to what Eclipse does. You can configure field prefixes, and then the tool automatically handles those when generating getters and setters.