2017-06-06 16 views
0

フォームを提出した後で、ページが別のポートレットにリダイレクトされています。actionResponse.sendRedirect("/abc/bcd/newWebPage") を使用しています。別のページに着陸しています。 1つのページに同じポットレットが別の画面で追加されました。今度は次のページに成功メッセージを表示します。別のポートレットに成功メッセージを表示

私はポートレットセッションを使用しており、パラメータをjspに渡しています。

PortletSession session = actionRequest.getPortletSession(); 
          session.setAttribute("SUCCESSA", "Successfully",PortletSession.APPLICATION_SCOPE); 

しかし、機能しません。

どのようにその達成方法をお手伝いしますか?

答えて

0

One that page the same potlet is added with different screenと言うと、別のページに同じポートレットの別のインスタンスがあることがわかります。ところで、あなたはあなたのために働いていないものは説明していません。私は、あなたがJSPページをどのように読み込むのか疑問に思っています。それはかなりまっすぐ進むです:コントローラで

:JSPでは

PortletUtils.setSessionAttribute(request, "SUCCESSA", "Successfully", PortletSession.APPLICATION_SCOPE); 

pageContext.setAttribute("succcessa", PortletUtils.getSessionAttribute(renderRequest, "SUCCESSA", PortletSession.APPLICATION_SCOPE)); 

PortletUtilsPortletRequestオブジェクトが、そのpreferrableを使用して属性を設定することと同じこと。セッション属性削除するには

PortletUtils.setSessionAttribute(request, "SUCCESSA", null, PortletSession.APPLICATION_SCOPE); 

をPortletUtilsの実装では、値がnullの場合、セッションが全く存在していた場合には、セッション属性を削除するということです。

+0

実際には、パラメータは正常に渡されましたが、問題は、 'actionRequest.getPortletSession()。removeAttribute(" attributeName "、scopeId)で表示した後にセッションを破棄した後でも、 '渡されたパラメータに基づいていました。 'その属性は引き続き表示されていました。だから私はHttpSessionを使用し、JSPでattを渡し、メッセージを表示した後、 'session.removeAttribute(" Attribute ");'はうまく働いた。お返事ありがとうございました。 – Akash

+0

:) – Akash

+0

'PortletSession'がうまくいかないので、' HttpSession'を使うべきではありません。それらはどちらも異なる目的を果たします。 PortletSessionは、基本的にHttpSessionの上にある抽象概念のレイヤーで、ポートレットレベルのアクセス許可を制御します。ですから、 'removeAttribute'がなぜあなたのために働いていないのかを知る必要があります。私はあなたが削除しながら正しい範囲を使用していないと思う。 'PortletUtils.setSessionAttribute(リクエスト、" SUCCESSA "、null、PortletSession.APPLICATION_SCOPE);' – YuVi

関連する問題