0

リクエスト属性がどのように動作するかを理解したいです。セッションでいくつかの値を設定しましたが、これが多くの問題を引き起こしています。それらをすべてリクエスト属性に変換しています。

ビューメソッドでこのようなものを設定したアクションクラスがあります。

       public ActionForward view(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception
        {
//...
request.setAttribute("abc", abc);
//...
    }

タブをクリックしてページが表示されると、このビュー メソッドが呼び出されます。このページには、「エクスポート」という別のボタンがあります。export 呼び出しと同じアクション クラスを作成し、次のように exportExcel というメソッドを呼び出します。

public void exportExcel(ActionMapping mapping, ActionForm actionForm,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception
    {
    if(request.getAttribute("abc")!=null){
        String def = (String)request.getAttribute("abc");
    }
}

リクエストパラメータを取得すると仮定します。うまくいきませんでした。また、セッションでこの変数を設定したくありません。この exportExcel メソッドでこのリクエスト属性を取得するための回避策はありますか?

4

2 に答える 2

1

リクエスト属性は、単一のリクエストの期間中のみ存在します。それがリクエストスコープの目的です。リクエスト間で何かを持続させたい場合は、セッションを維持します

新しいリクエストで何かを再作成する場合は、フォーム要素、URLパラメータなどを使用します。

于 2013-03-20T16:55:30.347 に答える
1

name="abc"jsp で、非表示の入力フィールドを作成し、その値を abc リクエスト属性値に設定する必要があります。このようにして、ユーザーがエクスポートボタンをクリックすると、送信されます。

エクスポート ボタンがアンカーの場合、hrefabc パラメータの名前/値を使用して設定できます。

于 2013-03-20T16:36:46.437 に答える