2016-09-01 19 views
0

送信時にセッションを作成するLiferayポートレットにカスタムフォームを作成しようとしています。私が望むのは、セッションがアクティブになるまで、投稿後に再びフォームを表示できないようにすることです。代わりに、外部URLにリダイレクトする必要があります。私はdoView()メソッドからセッションをチェックしようとしましたが、外部ページにリダイレクトしようとしましたが動作しませんでした。どんな助けも高く評価されます。以下はdoView()メソッドで試したコードです。Liferayがカスタムポートレットのセッションをチェックし、外部URLにリダイレクトする

boolean isSubmitted = false; 
HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(actionRequest); 
HttpServletResponse httpResponse = PortalUtil.getHttpServletResponse(actionResponse); 

isSubmitted = this.isSubmitted(httpRequest, httpResponse);//Checks for session in a cookie 
String redirect = "url"; 
if(isSubmitted ==false){ 
    httpResponse.sendRedirect("/" + url); 
} 
+0

あなたはどんなエラーに直面していますか?isSubmitted()implは存在しないため、ポートレットまたはhttpセッションをチェックしていますか? –

+0

返事をありがとう。 isSubmitted()は、クッキー値に基づいてtrueまたはfalseを返すカスタムメソッドです。 – user1634096

答えて

-1

画面/ログにエラーがありますか?まず第一に、sendRedirectパラメータが間違っているのがわかりますね。外部URLの場合は、URLの前に "/"を相対URLとして追加する必要があります。

これを変更してテストしてください。また、ログアウトしたユーザーでも行が実行されない場合は、以下を使用して、ユーザーがログインしているかどうかを確認してください。

ThemeDisplay themeDisplay =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY); ブール値signedIn = themeDisplay.isSignedIn();

こちらがお役に立てば幸いです。

+0

最初にコメントを使用して明快にしてください。コードもコードブロックに入れてください –

+0

@Kumaravadivel:私はカスタムクッキーを使ってセッションをチェックしているので、isSignedIn()関数を使うことはできません。また、themeDisplay.isSignedIn()リダイレクトは機能しません。 – user1634096

関連する問題