2012-07-25 3 views
0

J'utilise Struts2 + Hibernate. J'ai une forme dans une page JSP, dans lequel il y a un sélectionner que je dois le remplir la base de données. J'ai implémenté la classe DAO BookDAO (selectBooks(), updateBook (livre)). J'ai créé la classe Action dans laquelle j'ai déclaré une ArrayList of Book, et un objet de la classe BookDAO. Il semble que je dois définir une fonction dans la classe d'action qui appellent selectBooks et mon ArrayList remplir, mais cette action doit être appelée automatiquement sur le chargement ma page JSP. Ajax est-il nécessaire dans mon cas? Je vous remercie.Comment remplir la base de données dans Struts2 + Hibernate?

Répondre

0

Non, AJAX est pas nécessaire. Dans le code de votre méthode d'action, initialiser la liste:

public String execute() { 
    this.books = bookDAO.selectBooks(); 
    return SUCCESS; 
} 

La page JSP aura alors accès à la liste des livres.

+0

Merci beaucoup pour cette réponse. Bien que simple, ça marche bien pour moi! Donc, va faire un upvote pour vous et pour Russell et le marquer comme résolu :) –

1

La réponse de JB Nizet est bon, je suggère cependant une approche légèrement différente. Le problème avec l'affectation de l'assignation ArrayList dans la méthode execute est qu'elle ne fonctionnera que pour cette méthode particulière et doit être recréée si d'autres méthodes d'action sont ajoutées.

Vous êtes mieux de faire l'action et l'ajout d'une préparable méthode prepare pour faire tous vos appels de base de données et les affectations de liste. De cette façon, toutes vos données seront disponibles tout au long de la classe d'action sans avoir à dupliquer le code en cours de route.

La préparer méthode sera appelée première, avant toute autre dans l'action.

public class MyAction extends ActionSupport implements Preparable{ 

    private ArrayList<Books> books; 

    @Override 
    public void prepare() throws Exception { 
     this.books = bookDAO.selectBooks(); 
    } 

    ... 

} 
+0

Merci! Parfois, je pense d'une manière compliquée jusqu'à se perdre. Je pensais à rediriger l'action et ainsi de suite. Mais ici c'est simple et utile. Je vous remercie! –

Questions connexes