2010-02-17 8 views
2

J'ai un haricot déclaré sur une page qui est titulaire d'un framesetComment utiliser une seule JavaBean dans de nombreuses pages accross un jeu de cadres JSP

<jsp:useBean id="pos" class="MyBeanscope="page"> 
<jsp:setProperty name="a" property="a"/> 
</jsp:useBean> 

[some initialisation of MyBean] 

<frameset ... > 
    <frame src="/myframe1.jsp"...> 
    <frame src="/myframe2.jsp"...> 
</frameset> 

Ma question est, comment puis-je accéder à MyBean dans les pages JSP qui appartiennent à le frameset? Si je les déclare à nouveau dans chaque image jsp, je pense que je finirai par trois d'entre eux.

Merci pour toute aide

Ryan

+0

Finit avec 3 d'entre eux un problème? – skaffman

Répondre

2

Est-ce que ne pas utiliser des cadres HTML pour inclure du contenu partiel/modèle. Ceci est 1) pas amical SEO, 2) pas convivial, 3) pas développeur amical - comme vous l'avez découvert, 4) le style HTML très 90 (où avez-vous appris à nouveau sur les cadres? Jeter ce vieux livre/tutoriel loin et allez-en un moderne).

Faites plutôt entièrement le côté serveur. Utilisez jsp:include pour inclure le contenu partiel/modèle.

<jsp:useBean id="pos" class="MyBeanscope="page"> 
    <jsp:setProperty name="a" property="a"/> 
</jsp:useBean> 

[some initialisation of MyBean] 

<jsp:include page="/myframe1.jsp"...> 
<jsp:include page="/myframe2.jsp"...> 

Bien sûr, vous pouvez les placer dans certaines div et utiliser CSS pour les positionner/les styler.

+0

Merci pour le conseil. Je vais le prendre. Cependant, comment puis-je référencer le bean 'pos' dans myframe1.jsp et myframe2.jsp ?! Merci - Ryan – Ryan

1

comme la balise IMG, les balises FRAME chacun deviennent une autre demande de navigateur au serveur pour la référence JSPs. Donc, c'est 3 demandes distinctes. Comme ce sont des requêtes séparées, chacune des JSP devrait déclarer son propre bean.

Si le bean est cher à créer, vous pouvez l'étendre à la session, prêt pour les JSP «encadrées».

+0

Merci pour votre réponse. Cependant, mon but est d'utiliser le * même * bean dans toutes les pages. L'installation n'est pas chère, mais je veux persister quelque part entre les pages. Merci - Ryan – Ryan

+0

Vous ne pouvez pas. Vous devrez utiliser le serveur comme lien entre les 3 pages –

Questions connexes