title: Java getter for non-existent attribute of class
body: <p>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: </p>
  
  <p>I have a class <code>Foo</code> defined like this:</p>
  
  <pre><code>private String _name;
  private Bar _bar;
  //getters and setters
  </code></pre>
  
  <p>And <code>Bar</code>:</p>
  
  <pre><code>private String _code;
  
  //getters and setters
  
  public String get_isCodeSmith()
  {
        boolean rVal =  _code.toLowerCase().contains("smith");        
        return rVal;
  }
  </code></pre>
  
  <p>Somehow, in my JSP pages (when I have a <code>Session</code> variable called <code>Foo</code>) I am able to write logic tags like this:</p>
  
  <pre><code>&lt;logic:equal name="Foo" property="_bar._isCodeSmith" value="true"&gt;
  </code></pre>
  
  <p>And even though there is no attribute <code>_isCodeSmith</code> in my class <code>Bar</code>, it runs the <code>get_isCodeSmith()</code> method automatically. </p>
  
  <p>What is this called and where can I find out more? </p>