I’m using some functionality in Java that I don’t really understand so I want to read up on it so that I can use it more effectively. The problem is that I don’t know what it is called so it makes it difficult to get more information on it:
I have a class Foo defined like this:
private String _name;
private Bar _bar;
//getters and setters
And Bar:
private String _code;
//getters and setters
public String get_isCodeSmith()
{
boolean rVal = _code.toLowerCase().contains("smith");
return rVal;
}
Somehow, in my JSP pages (when I have a Session variable called Foo) I am able to write logic tags like this:
<logic:equal name="Foo" property="_bar._isCodeSmith" value="true">
And even though there is no attribute _isCodeSmith in my class Bar, it runs the get_isCodeSmith() method automatically.
What is this called and where can I find out more?
This is the Javabeans mechanism. Properties are identified not by fields, but by getter (accessor) and / or setter (mutator) methods.
For more technical info, read the JavaBeans spec
Or have a look at this simple test class:
and the simple JavaBeans analysis:
Output: