2 Replies Latest reply on Jul 9, 2007 7:29 PM by John McClain

    avoiding excessive bijection question

    John McClain Newbie

      In Michael Yuan's seam book, there is a secion on avoiding excessive bijection.
      I have tried to implement this idea in a test app with the following code:

      the controller

      @Stateful
      @Name("indexPage")
      @Scope(org.jboss.seam.ScopeType.SESSION)
      public class IndexPageBean implements IndexPage {
      
       @Logger
       private Log log;
      
       @In
       FacesMessages facesMessages;
      
       private Property property;
      
      
       private Borrower borrower;
      .
      .
      .
       public Borrower getBorrower()
       {
       return borrower;
       }
       public void setBorrower(Borrower borrower)
       {
       this.borrower = borrower;
       }
      .
      .
      .
      

      the view
      <div id="Borrower">
       <h2>Borrower</h2>
       <form name="BorrowerForm" id="BorrowerForm" jsfc="h:form">
       <div id="ageDiv">
       <label>AGE:
       <input type="text" name="textfield" jsfc="h:inputText" value="#{indexPage.borrower.age}"/>
       </label>
       </div>
       <div id="grossIncomeDiv">
       <label>GROSS:
       <input type="text" name="textfield" jsfc="h:inputText" value="#{indexPage.borrower.grossIncome}"/>
       </label>
       </div>
       <div id="submitBorrower">
       <input type="submit" jsfc="h:commandButton" id="submitBorrowerButton" action="#{indexPage.submitBorrower}" value="Submit" />
       </div>
       </form>
       </div>
      .
      .
      .
      
      


      I am getting the error:

      /home.xhtml @16,101 value="#{indexPage.borrower.age}": Bean: org.javassist.tmp.java.lang.Object_$$_javassist_91, property: borrower


      with a stacktrace of

      javax.faces.el.PropertyNotFoundException: /home.xhtml @16,101 value="#{indexPage.borrower.age}": Bean: org.javassist.tmp.java.lang.Object_$$_javassist_91, property: borrower
      at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:58)
      at javax.faces.component.UIOutput.getValue(UIOutput.java:77)
      at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:217)
      at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:135)



      Why? It seams to be saying that I do not have a borrower property in my controller, yet that is not true. Is it because I must first initialize something? The book gives a very similar example, but I must be missing something.