1

この例に従って LinkedIn ログイン フックを開発していますが、.jsp ファイルから .java クラスの実装にパラメーターを渡す際に行き詰まりましたAutoLogin

ポートレットを作成すると、値はprocessActionメソッドに正しく送信されますが、ここでは同じアプローチが機能していません。

私のlinkedin.jspファイルには、次の(簡略化された)構造があります。

<%
PortletURL linkedInRegiserURL = renderResponse.createActionURL();
linkedInRegiserURL.setParameter(ActionRequest.ACTION_NAME, "linkedInRegister");
%>

<form id="linkedInForm" action="<%= linkedInRegiserURL.toString() %>" method="post"
        name='<portlet:namespace/>linkedInForm'>
    <input type="hidden" name='<portlet:namespace/>email' id="email" />
</form>

次に、javascriptメソッド内で、に基づいてLinkedIn API、入力を入力し、フォームを送信します。

document.getElementById('email').value = member.emailAddress;
document.getElementById('linkedInForm').submit();

ここではすべて問題ありません。問題は私のクラスのlogin()関数内で始まります。LoginHook implements AutoLogin印刷テストを行うと、次の結果が表示されます。

@Override
public String[] login(HttpServletRequest request,
        HttpServletResponse response) throws AutoLoginException {

    String email1 = ParamUtil.getString(request, "email");
    String email2 = request.getParameter("email");
    String email3 = request.getAttribute("email").toString();

    System.out.println("email1 : " + email1); //empty value
    System.out.println("email2 : " + email2); //null
    System.out.println("email3 : " + email3); //null

    //etc.
}

問題はここから始まる<form id="linkedInForm" action="<%= linkedInRegiserURL.toString() %>"と思いますが、よくわかりませんし、メールパラメーターをどのように渡せばよいかわかりません。

PS: 私は Liferay 5.2.3 で作業しているので、拡張するクラスを書くことBaseStrutsPortletActionは問題外です。

4

1 に答える 1