Wykonanie instrukcji tylko raz

0

Witam, czy znany jest taki mechanizm który pozwoli wykonać mi daną instrukcje w sesji tylko raz ? Tzn. korzystam z DisplayTag-a i mam problem z listowaniem stron po nałożeniu filtrów.

W skrócie chcę zrobić tak, że kiedy wykryje nałożony filtr to żeby wykonał daną instrukcje ale tylko raz

  List<String> supplierFilters = p.get("filterS");
        if (CollectionUtils.isNotEmpty(supplierFilters)) {
            selectedFilters.put("supplier", supplierFilters);
            starting = 1;
            paramsMap.put("clear", true);
        }

Chcę aby

selectedFilters.put("supplier", supplierFilters);

wykonywało się zawsze, ale starting = 1;
paramsMap.put("clear", true);


 tylko przy pierwszym przejściu if-a. Dlatego że ten If będzie przechodził zawsze kiedy nakładany będzie filtr, albo zmieniana strona na 2 czy 3 ale parametr starting i mapa, odpowiada za to że jeśli znajdujemy się na przykład na 6 stronie i nakładamy filtr który zwróci listę mniejszą niż pojemność strony( listowanie jest po 50 na stronę ) , to zamiast zwrócić pustą stronę, to chcę by wróciło do pierwszej, bo tam się to poprawnie listuje. Ponadto jeśli już nacisnę przejście na stronę drugą, nie chcę żeby starting i mapa się odpaliła, ponieważ na drugiej stronie pojawi mi się wartość z pierwszej. Parametr starting odpowiada kolejnemu id-kowi który zwraca procedura sql w tabeli. Starting to parametr stronnicowania tego że jeśli przejdę na drugą stronę listy to wiem że mam tam wyświetlić rekordy od 51 bo do 50 są wyświetlane na pierwszej.

Da się to zrobić jakoś ? Pozdrawiam
0

A coś mniej więcej takiego?

HttpServletRequest request;
HttpSession session = request.getSession();

List<String> supplierFilters = p.get("filterS");
        if (CollectionUtils.isNotEmpty(supplierFilters)) {
            selectedFilters.put("supplier", supplierFilters);
Integer startingSession = request.getAttribute("starting");

//sprawdzamy czy starting nie jest ustawione w sesji
//jezeli nie jest to ustawiamy zmienna i ustawiamy atrybut w sesji

if(startingSession == null){

 session.setAttribute("starting", 1);
starting = 1;
}

            paramsMap.put("clear", true);
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0