Не удается получить атрибут запроса в классе действий Struts - PullRequest
2 голосов
/ 01 августа 2011

У меня есть страница JSP.Я вызываю страницу jsp в iframe и добавляю новый параметр в URL.

usrl выглядит как

http: \ localhost: 8080 \ Search.pp? Blah = 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 эта переменная будет установлена, но похоже, что она возвращает мне ноль.

1 Ответ

0 голосов
/ 01 августа 2011

Атрибуты запроса живут до тех пор, пока живет рассматриваемый HTTP-запрос. Он начинается всякий раз, когда клиент фактически отправил его, и заканчивается, когда клиент получил полный HTTP-ответ, связанный с HTTP-запросом. Любой последующий запрос является совершенно новым, который вообще не содержит копии атрибутов предыдущего запроса.

Вам нужно вместо этого передать его в качестве параметра запроса. Например, в качестве скрытого поля ввода формы другой страницы.

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

(JSTL fn:escapeXml() предназначен для защиты вашего сайта от атак XSS при повторном отображении контролируемого пользователем ввода)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...