2010-01-20 5 views
0

J'ai une page JSP qui affiche une liste de servlet, il a une zone de texte qui est utilisé pour filtrer le résultat de la recherche. Je sélectionne un élément dans la liste (table) et redirige vers une autre page pour éditer les détails après avoir fini l'édition. Je suis en mesure de revenir à la page de recherche via servlet, mais je suis incapable de préserver la condition de recherche dans la zone de texte et son résultat. Comment faire ça? Je pense à configurer une valeur de session et l'obtenir dans la page de recherche, est-ce exact? Ou y a-t-il un autre moyen?préserver les critères de recherche dans jsp page

Répondre

1

Le stockage dans la portée de session est le moyen le plus simple mais, en fonction de la taille de votre application, des problèmes d'évolutivité peuvent survenir. Comme alternative, lorsque vous sélectionnez un élément dans la liste, vous pouvez transférer (au lieu de rediriger car si vous effectuez une redirection, vous perdez les paramètres de demande) vers une autre page, en passant la requête de recherche en paramètre dans le demande. Une possibilité est d'avoir une forme avec deux champs cachés (la requête et l'élément sélectionné):

<form action="go_to_the_detail"> 
<input type="hidden" name="selectedItem" value="value_selected_item" /> 
<input type="hidden" name="query" value="query" /> 
</form> 

Dans la page d'édition:

<form action="go_to_save_item"> 
<input type="hidden" name="query" value="query_obtained_from_the_request" /> 

item fields to be modified 
</form> 

Ainsi, lorsque l'utilisateur se termine modifier l'élément, la requête sera à nouveau passé pour être affiché dans la boîte de recherche.

+0

merci pour le conseil mr.gracia, mais :-) qui conduit à une autre question comment faire cela? toute référence ou liens – sansknwoledge

+0

l'essaieront et signaleront ici. – sansknwoledge

0

Vous pouvez accéder aux paramètres de demande dans EL par la variable implicite ${param}. Vous pouvez conserver les paramètres de demande dans les demandes suivantes par l'élément input type="hidden".

Ainsi, l'exemple de base suivant devrait fonctionner.

Page A:

<form action="page B"> 
    <input type="text" name="search" value="${param.search}"> 
</form> 

Page B:

<form action="page A"> 
    <input type="hidden" name="search" value="${param.search}"> 
</form> 

Gardez à l'esprit que ceux-là se perdre lorsque vous faites une redirigent au lieu d'un avant à l'intérieur du servlet, tout simplement à cause du fait qu'un rediriger va créer une nouvelle demande, garbaging par la présente la demande initiale, incluant tous ses paramètres. et attributs.

+0

merci balusc et gracia, je suis capable de courir ça maintenant. Merci beaucoup – sansknwoledge