Voici ce que je veux faire. Cela semble simple, mais je n'arrive pas à le faire fonctionner. JSP1 - l'utilisateur remplit le formulaire, soumet à JSP2. JSP2 remplit les valeurs de formulaire dans un Bean et affiche les données, et offre l'option utilisateur de retourner et modifier (history.back()), ou de soumettre à Servlet. J'ai trouvé trois options différentes, et chacune a des problèmes.java session bean - recharger des données?
OPTION 1: JSP1 - formulaire HTML standard, soumet à JSP2
<form name="testform" method="post" action="jsp2.jsp">
...
City: <input name="currentCity" type="text" />
JSP2 -
<jsp:useBean id="workorder" type="com.mycompany.app.WorkorderBean" class="com.mycompany.app.WorkorderBean" scope="request">
<jsp:setProperty name="workorder" property="*" />
</jsp:useBean>
...
currentCity: ${workorder.currentCity}
Problème -Lorsque JSP2 soumet au contrôleur, et je l'appelle WorkorderBean workorder = (WorkorderBean) request.getAttribute("workorder");
retourne null. Donc 'scope = request' ne le fait pas passer de JSP à servlet. OPTION 2: Même scénario, mais sur JSP2, utilisez 'scope = session'.
Problème: lorsque l'utilisateur choisit de revenir à JSP1 et de modifier les données, puis de soumettre à nouveau à JSP2, JSP2 n'utilise pas les nouvelles valeurs, car il a déjà le bean en tant que bean session.
Question: Existe-t-il un moyen de vider le bean session lorsque je l'envoie à partir de JSP1? Je ne pense pas que je peux le faire avec Javascript. OPTION 3: Envoyer JSP1 à Servlet, qui formate le bean session et l'envoie à JSP2.
Problème: Lorsque l'utilisateur choisit de revenir de JSP2 à JSP1 pour apporter des modifications, toutes les données sont perdues dans le formulaire.
Comment est-ce que je peux faire ce travail?
Ensemble de déménagementProperty en dehors de l'utilisationBean a bien fonctionné - merci vanje! – snowmanjack