0

私はスプリント ポートレット 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のほとんどすべてのコンテンツを検索しましたが、運がなかったので、この問題の解決を手伝ってください!!

ありがとうございました。

4

1 に答える 1

0

これは、フォーム POST の予想される動作です。戻るボタンが機能することが不可欠な場合は、代わりにフォーム メソッドとして GET を使用します。

于 2013-04-13T20:48:35.227 に答える