これは私がやろうとしていることです。 jsf page1のデータをjsf page2で利用できるようにしたいのですが、これはpage1で開いたポップアップウィンドウです。 両方とも別個のマネージドBeanを持っています。 セッションを使用しようとしましたが、nullポインタが発生しました。 JavaScriptを使ってwindow.opener()を使ってpage2のデータを取得していました。 このデータをFacesPortletのprocessAction()メソッドで使用できるようにします。 request.getParameter、request.getAttributesを使用して、すべて無駄にしようとしました。 多くの研究の後、私は何とかprocessAction()メソッドでいくつかのハードコーディングされたデータを送信することができました。しかし、私はpage1から値を送ることができません。 ハードコードされた値を送信する方法は次のとおりです。1つのJSFページからFacesPortletのProcessAction()メソッドにデータを転送
<form name="uploadbaseline" method="post"
enctype="multipart/form-data" action="<portlet:actionURL><portlet:param name = "page" value = "someval"/></portlet:actionURL>">
これは、フォーム内の他のフィールドが続きます。 この
System.out.println("valuefrompage1"+request.getParameter("page"));
のような私はのprocessActionの値を取得する()メソッドは、この "someval" を返します。 次のコードを使用して、javascriptを使用してpage1の値を割り当てようとしました。
var val = window.opener.document.getElementById("BaseLine:EngineModel").value;
var actionval = "<portlet:actionURL><portlet:param name='page' value=" + val.value + "/></portlet:actionURL>";
document.uploadbaseline.action = actionval.value;
document.uploadbaseline.submit();
それは「ヴァル」変数の実際の値ではなく、これは値「+ val.value +」を返します。
正しい方向に案内してください。 あなたのお返事をお待ちしております。おかげさまで
私が質問を投稿した方法に混乱がある場合は教えてください。私は同じことを明確にすることを熱望する以上のものになるでしょう。 – Waheeb
申し訳ありませんが、私はポートレットを作成しません。 – BalusC
window.openerとクエリ文字列以外の親ページの値を取得する方法はありますか? – Waheeb