Comment faire ActionBean instancier immédiatement, mais pas après avoir appelé l'un des gestionnaires?

StackOverflow https://stackoverflow.com/questions/3080442

  •  28-09-2019
  •  | 
  •  

Question

Je suis en train de faire quelque chose de simple avec des rayures. Je l'ai lu et entendu beaucoup de choses sur l'utilisation de ce facilité cadre et au sujet courbe d'apprentissage abrupte (à savoir l'apprentissage est très rapide et productif).

Mais jusqu'à ce moment, je ne peux même pas créer le plus simple HelloWorld avec des rayures.

Tous les exemples que j'ai trouvé démontrent des fonctionnalités telles que: « cliquez sur le lien -> voir le résultat ». Lorsque l'on clique sur le gestionnaire spécial de liaison est appelé (qui retourne Resolution) et après que getters fonctionne aussi (car instanciation haricot).

Mais si je ne veux pas un lien mais je veux simplement des informations statiques (par exemple, quand j'ouvre StackOverflow je ne ai pas besoin de cliquer sur un lien, mais je vois immédiatement une liste de questions) alors il est non quelque chose trivial pour Stripes comme il me semble, parce que le haricot est pas instancié immédiatement.

Comment résoudre ce problème? Y at-il une annotation spéciale ou d'une autre technique?

Quelqu'un at-il essayé ici Stripes et a rencontré le même problème? Je suis frustré vraiment, peut-être je l'ai raté quelque chose ..

UPD: il est sans doute pas clair parce que je ne l'ai pas joint de code. Donc, je décris un peu plus. Afin de reproduire ma situation, il suffit d'obtenir le code de QuickStart et essayer de récupérer du texte à partir ActionBean getters (actuellement, le texte est codé en dur dans jsp). Le texte apparaît uniquement après avoir appuyé sur le bouton (à savoir après gestionnaire fait un travail). Mais après avoir ouvert la page première fois que vous ne verrez pas le texte.

Était-ce utile?

La solution

Connaissez-vous le modèle MVC (voir http : //en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller )? L'un des éléments clés du MVC est vous jamais appeler la JSP directement. On ne va pas à www.myservername.com/myjsp.jsp . Au lieu de cela, vous allez à www.myservername.com/mything.action . Stripes feront un certain traitement, définir des choses, puis vous envoyer à la JSP spécifique.

A partir de votre question, il semble tout comme vous essayez d'aller directement à JSPs. Arrêtez de faire ça, et vous obtiendrez beaucoup plus agréable le long avec des rayures.

En ce qui concerne ce qui se passe quand vous allez juste www.myservername.com, vous allez au fichier de bienvenue dans votre web.xml. Vous faites quelque chose comme ceci

<welcome-file>index.jsp</welcome-file>

(oui vous enfreignez la règle sur les pas directement jsp)

Ensuite, dans index.jsp vous faites un fichier de 1 ligne comme ceci:

<jsp:forward page="myaction.action"/>

Et la première fois que quelqu'un va à votre site, ils ont frappé index.jsp, qui les envoie à une action, ce qui les choses et avant Remplit sur. Dans aucun autre cas sera l'utilisateur directement à obtenir un jsp, et le fichier d'index est rien, mais un attaquant à une action réelle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top