2017-09-18 1 views
0

J'ai un portlet développé dans Liferay, dans lequel je veux obtenir la valeur du paramètre de requête de l'URL.Comment obtenir les paramètres de l'URL dans Liferay

J'ai essayé de cette façon, mais obtenir la valeur « null » de paramètre de requête:

HttpServletRequest httpReq = PortalUtil.getHttpServletRequest(request); 
HttpServletRequest httpOrigReq = PortalUtil.getOriginalServletRequest(httpReq); 
String myValue = httpOrigReq.getParameter("idProcessOrigin"); 

Tout conseil serait grandement apprécié!

Répondre

2

Le code que vous mentionnez dans votre question devrait fonctionner, cependant, il ignore les particularités d'un environnement de portlet. Généralement, dans un portlet, vous préférez "décorer" les noms des paramètres avec <portlet:namespace/> (ou quel que soit l'équivalent de votre bibliothèque d'interface utilisateur de ce choix). Au lieu de soumettre un paramètre "idProcessOrigin", vous souhaitez soumettre "<portlet:namespace/>idProcessOrigin" (bien sûr, avec un espace de bien remplacé, par exemple, plutôt SOME_RANDOM_STUFF_idProcessOrigin)

Si vous ne voulez pas, vous pouvez également déclarer la propriété com.liferay.portlet.requires-namespaced-parameters=<boolean> dans votre portlet- @ Component de liste des biens (as carried over from liferay-portlet.xml)

pour la manière standard d'obtenir les paramètres d'une demande de portlet, vous n'avez pas besoin de passer par le HttpServletRequest du tout - il suffit d'utiliser la méthode de getParameterPortletRequest. Le résultat de cette méthode dépend cependant des noms de paramètres correctement décorés (ou de l'option désactivée mentionnée ci-dessus). Remarque: Lorsque vous appelez request.getParameter("idProcessOrigin"), vous n'avez plus besoin de la décoration, à condition que request soit une demande de portlet, et non une requête HttpServletRequest.

+0

Olaf Merci pour votre réponse, je veux obtenir le paramètre dans le contrôleur pas dans le jsp! –

+0

Vous obtiendrez * le * paramètre dans le contrôleur exactement comme décrit ici. Vous devrez juste * le nommer * selon les règles, et j'ai documenté comment le nommer en termes de JSP. –