Shouldn't the getter be named "getPName"? Dave
(pardon brevity, typos, and top-quoting; on cell) On Nov 2, 2012 1:09 AM, "Maliwei" <[email protected]> wrote: > As I have desc in the mail title, and see the code below: > > /**--------------code start----------**/ > import ognl.Ognl; > import ognl.OgnlException; > class Hello { > private String pName; > public String getpName() { > return pName; > } > public void setpName(String pName) { > this.pName = pName; > } > } > > public class OgnlTest { > public static void main(String[] args) { > Hello action = new Hello(); > action.setpName("pName.Foo"); > try { > Object pName = Ognl.getValue("pName", action); > System.out.println(pName); > } catch (OgnlException e) { > //this will happen when use version 2.7+ and 3.x > e.printStackTrace(); > } > } > } > /**--------------code end----------**/ > > According to JavaBeans Spec sec 8.8 "Capitalization of inferred names": > Thus when we extract a property or event name from the middle of an > existing Java name, we normally convert the first character to lower case. > However to support the occasional use of all upper-case names, we check if > the first two characters of the name are both upper case and if so leave it > alone. So for example, > “FooBah” becomes “fooBah” > “Z” becomes “z” > “URL” becomes “URL” > We provide a method Introspector.decapitalize which implements this > conversion rule. > String java.beans.Introspector.decapitalize(String name) > Utility method to take a string and convert it to normal Java variable > name capitalization. This normally means converting the first character > from upper case to lower case, but in the (unusual) special case when there > is more than one character and both the first and second characters are > upper case, we leave it alone. > Thus "FooBah" becomes "fooBah" and "X" becomes "x", but "URL" stays as > "URL". > > > > > > Best Regards > Ma Liwei
