Apple WebObjects 3.5 Manuel d'utilisateur Page 138

  • Télécharger
  • Ajouter à mon manuel
  • Imprimer
  • Page
    / 218
  • Table des matières
  • MARQUE LIVRES
  • Noté. / 5. Basé sur avis des utilisateurs
Vue de la page 137
Chapter 7 Managing State
138
pageWithName: and Page Caching
When the application object receives a pageWithName: message, it creates a new
component. For example, in the HelloWorld example a user enters a name in
the first page (the Main component), clicks Submit, and is presented with a
personal greeting on the second page (the Hello component). Clicking the
Submit button in the first page invokes the
sayHello method in the Main
component. As part of its implementation
sayHello sends a pageWithName: message to
the application object:
// Java HelloWorld
String visitorName;
public Component sayHello() {
//Create the next page
Hello nextPage = (Hello)application().pageWithName("Hello");
// Set state in the Hello page
nextPage.setVisitorName(visitorName);
// Return the Hello page
return nextPage;
}
Each time the sayHello method is invoked, a new Hello component is created. For
example, if the user backtracks to the main page and clicks the Submit button
again, another Hello page is created. It’s unlikely this duplication of components
will be a problem for the HelloWorld application, since users quickly tire of its
charms. But, depending on design, some applications may benefit by modifying
the operation of
pageWithName: so that an existing component can be reused.
If you want to extend WebObjects’ page caching mechanism to include pages
returned by
pageWithName:, you must implement your own solution. Fortunately,
it’s easy. One approach is to have the session maintain a dictionary that maps
page names to page objects. Here’s the code you would add to the session
object:
// example Session.java
MutableHashtable pageDictionary;
public Session() {
super();
pageDictionary = new MutableHashtable();
}
public Component pageWithName(String aName) {
return (Component)pageDictionary.get(aName);
}
public void storePage(String aName, Component aPage) {
pageDictionary.put(aName, aPage)
}
Vue de la page 137
1 2 ... 133 134 135 136 137 138 139 140 141 142 143 ... 217 218

Commentaires sur ces manuels

Pas de commentaire