
| Key: |
SHALE-185
|
| Type: |
Bug
|
| Status: |
Resolved
|
| Resolution: |
Fixed
|
| Priority: |
Major
|
| Assignee: |
Unassigned
|
| Reporter: |
Adam Brod
|
| Votes: |
1
|
| Watchers: |
1
|
|
If you were logged in you would be able to see more operations.
|
|
|
|
Environment:
|
Windows XP sp3, Weblogic 9.1, MyFaces 1.1.3
|
|
|
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) { this.m_fileId = 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.
|
|
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) { this.m_fileId = 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.
|
Show » |
made changes - 27/Jun/06 01:40 PM
| Field |
Original Value |
New Value |
|
Fix Version/s
|
|
1.0.3
[ 21714
]
|
|
Resolution
|
|
Fixed
[ 1
]
|
|
Status
|
Open
[ 1
]
|
Resolved
[ 5
]
|
made changes - 21/Aug/06 11:28 PM
|
Fix Version/s
|
1.0.3-SNAPSHOT
[ 21714
]
|
|
|
Fix Version/s
|
|
1.0.3
[ 21750
]
|
made changes - 09/Aug/07 07:16 AM
|
Workflow
|
Struts
[ 38425
]
|
Struts - editable closed status
[ 42188
]
|
made changes - 08/Jan/09 08:57 AM
|
Workflow
|
Struts - editable closed status
[ 42188
]
|
Struts - editable closed status (temporary)
[ 46203
]
|
made changes - 08/Jan/09 09:08 AM
|
Workflow
|
Struts - editable closed status (temporary)
[ 46203
]
|
Struts - editable closed status
[ 52614
]
|
|