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 getParameter
PortletRequest
. 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.
Olaf Merci pour votre réponse, je veux obtenir le paramètre dans le contrôleur pas dans le jsp! –
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. –