--- maomaode <[EMAIL PROTECTED]> wrote: > Hi, > > I'm a new user of JXPath, my working env: JDK5, > JXPath 1.2 > > I have a Nested bean class: > > Config.java which has a getter: > > CacheConfig getCache() { > return this.cache; > } > > The CacheConfig.java which has two getters: > > Boolean isEnable() { > return this.enable; > } > > String getDir() { > return this.dir > } > > So my simple test code is: > > JXPathContext context = > JXPathContext.newContext(config); > context.getValue("/cache/dir"); > This one works perfectly > > But, Unfortunately, > context.getValue("/cache/enable"); > > what i got is : > > org.apache.commons.jxpath.JXPathException: Cannot > access property: > config.CacheConfig.enable > o read method > at > org.apache.commons.jxpath.util.ValueUtils.getValue(ValueUtils.java:348) > at > org.apache.commons.jxpath.ri.model.beans.BeanPropertyPointer.getBaseValue(BeanPropertyPointer.java:108) > at > org.apache.commons.jxpath.ri.model.beans.BeanPropertyPointer.getImmediateNode(BeanPropertyPointer.java:135) > at > org.apache.commons.jxpath.ri.model.beans.PropertyPointer.getImmediateValuePointer(PropertyPointer.java:127) > at > org.apache.commons.jxpath.ri.model.NodePointer.getValuePointer(NodePointer.java:238) > at > org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:331) > at > org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.getValue(JXPathContextReferenceImpl.java:280) > > So, i wondering, the JXPath only support get***, not > the is***? > > I have raised a jira bug[1], i got a quick > response, thanks, BTW > The answer is JXPath do support is*** feature, so i > guess i must misuse > the JXPath, or the version is not correct? > > Can someone help me out? just tell me how to > retrieve the > boolean/Boolean value from the beans, or tell me > where is the unit test > code. > TBH, i can not find the test case which include > isFoo() mentioned in the > jira response. >
mmm... my guess would be that java.beans.introspector does not count Booleans, which are Objects, as being eligible for the isFoo() naming convention, only boolean primitives. The javadoc of java.beans.PropertyDescriptor's (String, Class) constructor possibly implies this. All I can tell you is to use a primitive or take it up with Sun to have Boolean isFoo() recognized. OR... you could change your isEnable() to getEnable(), or simply add getEnable() as an alternate form of getEnable()--one that will just happen to be recognized by jxpath. -Matt > Thanks in advance > James. > > [1]https://issues.apache.org/jira/browse/JXPATH-78?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > ____________________________________________________________________________________ TV dinner still cooling? Check out "Tonight's Picks" on Yahoo! TV. http://tv.yahoo.com/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]