私はスプリント ポートレット JSR 286 を使用して Web アプリケーションを開発しました。これは Web ブラウザでテーブル形式でデータを表示します。
以下は、JSP ファイルからコントローラーを呼び出すために使用されるコードです。
`
function openPortletReport(displayName,reportName,linkNum){
document.eployerSearchLightFrm.action='<%=formAction%>';
document.getElementById("reportName").value=reportName;
document.getElementById("parentLinkName").value=linkNum;
document.getElementById("eployerSearchLightFrm").submit();
}
` ここで、フォーム アクション タイプは POST で、reportName、parentLinkName はパラメータです。
このフォームを送信すると、Controller のhandlerRenderRequestメソッドが呼び出されます。データベースからデータを取得した後、次のように ModelAndView オブジェクトでビューの名前を渡します:-
`modelAndView = new ModelAndView("searchlight/genderProfile");
return modelAndView;`
このビュー名は、以下に示すように、アプリケーション コンテキスト xml ファイルで ViewResolver を使用して、関連する JSP ファイルにマップされます。
`
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
`
この JSP ファイルを表示した後、その JSP ファイルに別のリンクが存在する場合があります。このリンクは、上記と同じプロセスに従って新しい JSP ファイルに移動します。
上記のプロセスを使用して JSP ファイルがブラウザにロードされた後、ブラウザの [戻る] ボタンをクリックすると、ポートレット要求が再送信されず、ブラウザでWebpage has expiredエラーが表示されます。これは、IE 8、Mozilla Firefox 19、Chrome 24 を含むすべてのブラウザーで発生しています。
解決策を見つけるためにGoogleのほとんどすべてのコンテンツを検索しましたが、運がなかったので、この問題の解決を手伝ってください!!
ありがとうございました。