2011-08-01 15 views
2

jspページがあります。私はiframeでjspページを呼び出し、urlに新しいパラメータを追加しています。strutsアクションクラスのリクエスト属性を取得できません

usrlが見え

HTTPのような:\ localhostを:?8080 \ Search.pp何とか=はtrue。

だから、ときに私はこの

String Parameter = 
      request.getParameter(blah); 
    if (StringUtils.isNotEmpty(Parameter)) { 
     Search = Boolean.parseBoolean(campaignSearchParameter); 
    } 

のようなコードを持ってして、JSPページに、私は

final Boolean Search = (Boolean) request.getAttribute("blah") == null ? false : (Boolean) request 
     .getAttribute("blah"); 
request.setAttribute("blah",Search); 

私のような何かをアクションクラスで、いわゆる検索ページには、いくつかのフィルタを持っているとして、この「検索」ブール変数を使用して、別のページから呼び出されたときに何かを非表示にします。 したがって、このページ内のリンクをクリックすると、同じ動作クラスのstrutsに戻ります。 私の問題は、初めてのことはすべて正常に動作することです。次回はstrutsのアクションでこの変数を設定することを期待しますが、nullを返すように見えます。

答えて

0

リクエスト属性は、問題のHTTPリクエストが存続する限り存続します。クライアントが実際に送信したときに開始され、クライアントがHTTP要求に関連付けられた完全なHTTP応答を取得するたびに終了します。後続の要求は全く新しいものであり、以前の要求の属性のコピーはまったく含まれていません。

代わりにリクエストパラメータとして渡す必要があります。たとえば、他のページのフォームの非表示の入力フィールドです。

<form ...> 
    ... 
    <input type="hidden" name="blah" value="${fn:escapeXml(param.blah)}" /> 
</form> 

(JSTL fn:escapeXml()は、ユーザ制御入力を再表示しながら、XSS攻撃からサイトを防ぐためです)

関連する問題