Comment créer un RenderURL pendant la phase d'action dans un portlet?
Dans la méthode processAction(ActionRequest request, ActionResponse response)
, j'ai insérer un enregistrement dans la base de données et obtenir le ID
et puis
Je veux rediriger vers la page d'affichage de cet enregistrement. J'ai donc besoin de créer un RenderURL
avec une valeur de paramètre pour que ID.
ActionResponse
ne fournit pas de méthode pour créer un renderURL
. Certains codes dans Liferay faire les mêmes choses comme:
- créer
renderURL
avant d'accéder à laactionURL
- passer le
renderURL
comme un paramètre de laactionURL
Cependant, à l'époque, je ne sais pas la valeur de ID
.
D'autres codes peuvent également utiliser new PortletURLImpl()
directement. Ma portlet ne peut pas voir que la classe.
Désolé, je ne l'ai pas dit clairement. Je veux le
renderURL
comme une URL de redirection. Si vous n'avez pas de redirection, lorsque vous actualisez ou appuyez sur entrée dans la barre d'adresse, vous aurez tort de la page de résultat.OriginalL'auteur bopomofu | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
Parce que cette classe est en
portal-impl.jar
et aussi il n'est pas recommandé d'utiliser des classes de ce pot. À partir de Liferay 6.1, vous ne serez pas en mesure de construire votre portlet de plugins-sdk si vous les classes de point deportal-impl.jar
.Maintenant pour répondre à votre question:
Toute jsp est rendu par le
render
méthode oudoView
méthode (si l'on utilise liferay estMVCPortlet
) et cette méthode doit être appelée en tant que partie de la vie normale du cycle de portlets.Voici les étapes que vous devez prendre:
définir un paramètre de rendu (à l'aide de réponse.setRenderParameter() méthode) dans votre "processAction' méthode à la dernière qui serait disponible dans votre méthode de rendu, comme suit:
Juste pour info: Après l'utilisation de
setRenderParameter
vous ne pouvez pas utilisersendRedirect
méthodechercher ce
"myID"
dans votre méthode de rendu que vous allez chercher tout autre paramètre de la requête:ou
Après cela, il suffit d'utiliser
ont été
renderPage
n'est rien mais une chaîne de caractères contenant le chemin d'accès à votre page jsp dansdocroot
comme/html/yourportlet/view.jsp
tout comme une réflexion après coup:
Si vous utilisez un Liferay IDE, alors vous pouvez essayer de créer une simple portlet projet avec
MVCPortlet
et puis regardez le générésportlet.xml
's<init-param>
Donc, fondamentalement, vous avez besoin pour passer des informations d'action de la phase de rendu de la phase, la guide de développement de est un bon endroit pour expliquer cela en détail.
.
Espérons que cette aide.
Laissez-moi savoir si vous avez toute confusion à ce sujet.
BTW, dans certains cas,
PortalUtil.copyRequestParameters
serait utile.OriginalL'auteur Prakash K
Dans la phase action, procédez de la manière suivante:
Par exemple, si vous souhaitez rediriger vers la page de connexion et à l'arrière, vous pouvez effectuer les opérations suivantes:
Certainement vous pouvez ajouter ou de copier les paramètres comme nécessaire.
OriginalL'auteur Qaiser Zaman
Au lieu de créer de la renderURL vous pouvez inclure le point de vue page comprennent(viewTemplate,actionRequest,actionResponse). Ou si vous voulez envoyé un paramètre tout envie de le faire entrer dans doView ensuite utiliser actionResponse.setParameter(nom,valeur) méthode
OriginalL'auteur lucky
- Je créer un
RenderURL
avec une place de titulaire en tant que valeur du paramètre, comme ceci:Dans
processAction
:OriginalL'auteur bopomofu