j'ai une page JSP qui est accessible à partir d'une URL commeJSP getQueryString() et getParameterMap() retour différents paramètres
http://localhost/products.jsp
(donc sans une chaîne de requête), alors que cette page contient d'autres JSP avec:
<jsp:include page="product.jsp">
<jsp:param value="1" name="recordNumber"/>
</jsp:include>
intérieur product.jsp
il y a un appel à une méthode Java qui reçoit l'objet request
:
NavigationUtils.getProductUrl(request)
Cette logique de méthode est pilotée par les paramètres de requête.
Ce que je reçois est que:
request.getQueryString()
retoursnull
request.getParameterMap()
a une entrée pour"recordNumber"
Est-ce comportement standard ou que je fais quelque chose de mal?
J'ai consulté les documents sur HttpServletRequest.getQueryString() et ServletRequest.getParameterMap(), mais je ne trouve pas ce comportement décrit ni aucune référence à une manipulation dépendant du conteneur qui peut donner des résultats différents.
Le problème principal est que je peux casser le code existant en utilisant getParameterMap() au lieu de getQueryString(), donc tout conseil sur ce serait utile.
Je transformerais la JSP en un fichier de balise JSP et passerais le paramètre en tant qu'attribut de balise, au lieu d'utiliser un include et en passant le paramètre en tant que paramètre de requête "faux". Cela aurait l'avantage supplémentaire de pouvoir le passer comme un Integer propre, plutôt que comme un String. –
@JBNizet Mon intervalle de réécriture de code est plus étroit que ça, en fait je préfère ne pas toucher de JSP, je suis ici car le code existant (qui est profond dans la logique webapp) empêche ma nouvelle implémentation de fonctionner comme prévu , mais merci pour la suggestion. – watery