Issue Details (XML | Word | Printable)

Key: XW-647
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Minor Minor
Assignee: Rainer Hermanns
Reporter: zhouyanming
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
XWork

make Enum.values() accessable by ognl default

Created: 22/Jun/08 09:41 PM   Updated: 24/Jun/08 02:34 AM
Component/s: Type Conversion
Affects Version/s: None
Fix Version/s: 2.1.2


 Description  « Hide
l if I want to use tag like this
<s:select label="%{getText('product.status')}" name="product.status" list="@test.model.ProductStatus@values()" listKey="name" listValue="displayName" />

ProductStatus is a enum class,I think approval this permission is more safe than setting allowStaticMethodAccess to true.

 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
zhouyanming added a comment - 22/Jun/08 09:46 PM
Index: D:/workspace/xwork/src/java/com/opensymphony/xwork2/ognl/StaticMemberAccess.java
===================================================================
--- D:/workspace/xwork/src/java/com/opensymphony/xwork2/ognl/StaticMemberAccess.java (revision 1840)
+++ D:/workspace/xwork/src/java/com/opensymphony/xwork2/ognl/StaticMemberAccess.java (working copy)
@@ -40,6 +40,12 @@
         if (Modifier.isStatic(modifiers)) {
             if (member instanceof Method && !getAllowStaticMethodAccess()) {
                 allow = false;
+ if (target instanceof Class) {
+ Class clazz = (Class) target;
+ Method method = (Method) member;
+ if (Enum.class.isAssignableFrom(clazz)&&method.getName().equals("values"))
+ allow = true;
+ }
             }
         }
         

Rainer Hermanns added a comment - 24/Jun/08 02:34 AM
Thanks for the patch, applied to trunk.