Why do you need user and company instance variables if they're accessible from the Visit? Are you changing them inside the component?

Todd

On Jul 12, 2005, at 4:53 PM, Java Leech wrote:

So do you mean do something like this?

public abstract class CompanyInfo extends BaseComponent {

    private boolean dispayLogo = false;
    private Company company;
    private Users user;


    /**
     * @return Returns the company.
     */
    public Company getCompany(){
        return(((CompanyProfile) getPage()).getCompany());
    }

    /**
     * @param company The company to set.
     */
    public void setCompany(Company company) {
        this.company = company;
    }

    /**
     * @return Returns the user.
     */
    public Users getUser(){
        return(((CompanyProfile) getPage()).getUser());
    }
    /**
     * @param user The user to set.
     */
    public void setUser(Users user) {
        this.user = user;
    }
}

On Tue, 12 Jul 2005 16:32:37 -0400, "Todd O'Bryan" <[EMAIL PROTECTED]>
said:

You can only use this component on a page that has getUser() and
getCompany() defined, right? Create a page superclass that defines
those two and has the code to get them from the Visit. Then in your
component you can use ((MyPageSuperClass) getPage()).getUser() and
similar to get access to them.

You don't really need a separate copy in the component if you can get
it from the Visit, right?

Todd

On Jul 12, 2005, at 4:23 PM, Java Leech wrote:


So I guess I don't understand how to initialize these properties for
components.
If i create a <property-specifications> in my.jwc how do I retrieve
the
Object I have stored in the Visit()?


On Tue, 12 Jul 2005 15:59:22 -0400, "Jamie Orchard-Hays"
<[EMAIL PROTECTED]> said:


You need to learn some Tapestry conventions. The first is that when
you have page or component properties, you generally should not
define them in the Java file with instance variables and get/ setters.
What you should do  is define them in your .page or .jwc file as
<property-specifications>. When you do this, Tapestry will handle the initialization they need to be cleaned up for page pooling (pages are
pooled for performance).

When you have a page or component property that needs to be accessed
inside your java file, then you make an abstract getter and/or
setter:
public abstract String getSomeProperty();
public abstract void setSomeProperty();

Jamie

On Jul 12, 2005, at 2:50 PM, Java Leech wrote:



Could someone guide me in the right direction here?
Here is the code for a component that I have:

public class CompanyInfo extends BaseComponent {
    private Users user = new Users();
    private Company company = new Company();
    private boolean dispayLogo = false;



    /**
     * @return Returns the company.
     */
    public Company getCompany() {
        Visit visit = (Visit) getPage().getVisit();
        return (visit.getCurrentCompany());
    }
    /**
     * @param company The company to set.
     */
    public void setCompany(Company company) {
        this.company = company;
    }
    /**
     * @return Returns the user.
     */
    public Users getUser() {
        Visit visit = (Visit) getPage().getVisit();
        Users u = visit.getUsers();
        return u;
    }
    /**
     * @param user The user to set.
     */
    public void setUser(Users user) {
        this.user = user;
    }
    ...../
}

When I log in with two different browsers on different machines I
get
the following exception:
Unable to resolve expression 'company.name' for
[EMAIL PROTECTED]
[CompanyProfile/compInfo].
binding: ExpressionBinding[CompanyProfile/compInfo company.name]
location: context:/WEB-INF/CompanyInfo.html, line 12

ognl.OgnlException
source is null for getProperty(null, "name")

Users() and Company() are my persistant Hibernate Classes. What is
the
best way to do this?  Basically this component shows information
about
the current company that the user belongs to.  I have stored the
Users()
in the Visit and want to pull up this information.
Thanks.
~chris



On Tue, 12 Jul 2005 11:00:31 -0500, "Joel Trunick"
<[EMAIL PROTECTED]> said:




It's caused because the page is cached. It still has the old
"Users"
object with the values filled in the first time. Something like the
following will fix (I personally user a getter with lazy
initialization,
and initialize users to null):

public void initialize() {
  Users users = new Users();
}

Joel

-----Original Message-----
From: Java Leech [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 12, 2005 9:25 AM
To: [email protected]
Subject: Newbie with Thread Issues

I have posted this on the forum but it seems there is not to much
action
there.  So I'll try the mailing list.

I'm not sure what I am doing wrong but I seem to be having some
serious
thread problems. I have been developing an app for about a week and today was the first time I brought up a browser on another machine
to my
webapp. I knew something was wrong immediatly when my login form
was
autofilled with the values that I used in the first browser.

After trying to log in got a bunch of null value exceptions and
can't
ever log back in with out restarting jboss. I am using
Hibernate3 and
Tapestry 3.03 running on jboss.

Here is a code snippet from my login component:

public abstract class NavLogin extends BaseComponent implements
IForm{

   private ICallback callback;
   private Users users = new Users();

    public void setCallback(ICallback callback) {
        this.callback = callback;
    }

   public void formSubmit(IRequestCycle cycle){
      //Form Validation
      ValidationDelegate delegate =
      (ValidationDelegate)getBeans().getBean("delegate");

      //If no errors add the user
      if(!delegate.getHasErrors()){
         System.err.println("Users: "+ getUsers().getEmail() +
               " Logging in with password: "+
               HashUtils.md5Sum(getUsers().getPassword()));
         Users authUser = authenticate();
         if(authUser != null){
            Visit visit = (Visit) getPage().getVisit();
            visit.setUsers(authUser);

if(authUser.getRole().getType().equalsIgnoreCase("provider")){
               cycle.activate("CompanyProfile");
            }
         }
      }
   }
   /**
    * Authenticate the user attempting to log in
    * @return
    */
   public Users authenticate(){
      UserDAO dao = new UserDAO();
      Users aUser = dao.authUser(getUsers().getEmail(),
      HashUtils.md5Sum(getUsers().getPassword()));
      return(aUser);
   }

--
http://www.fastmail.fm - The professional email service


----------------------------------------------------------------- --
--
To unsubscribe, e-mail: tapestry-user-
[EMAIL PROTECTED]
For additional commands, e-mail: tapestry-user-
[EMAIL PROTECTED]



----------------------------------------------------------------- --
--
To unsubscribe, e-mail: tapestry-user-
[EMAIL PROTECTED]
For additional commands, e-mail: tapestry-user-
[EMAIL PROTECTED]





--
http://www.fastmail.fm - And now for something completely
different&#8230;


------------------------------------------------------------------ --
-
To unsubscribe, e-mail: tapestry-user- [EMAIL PROTECTED]
For additional commands, e-mail: tapestry-user-
[EMAIL PROTECTED]






------------------------------------------------------------------- -- To unsubscribe, e-mail: tapestry-user- [EMAIL PROTECTED]
For additional commands, e-mail: tapestry-user-
[EMAIL PROTECTED]




--
http://www.fastmail.fm - Access all of your messages and folders
                          wherever you are


-------------------------------------------------------------------- -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: tapestry-user- [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: tapestry-user- [EMAIL PROTECTED]



--
http://www.fastmail.fm - Does exactly what it says on the tin


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to