2013-05-25 2 views
0

Я новичок в программировании и эта проблема беспокоит меня в течение 3-х дней подряд ...объекта в массив JSP

У меня есть пост форму на сайте .jsp для сбора имя, фамилия, почта, ... и вся эта информация сохраняется в объекте USER. Я хочу сохранить пользователей в массиве и отобразить их на одном сайте. Но каждый раз, когда я использую кнопку отправки в форме, создается новый сеанс, а информация о выходе массива - только один пользователь. Что мне делать для решения этой проблемы? пс: на данном этапе я не могу использовать SQL, потому что это школьные проекты

<% Uporabnik uporabnik = new Uporabnik(); //user 
    uporabnik.setIme(request.getParameter("ime")); 
    uporabnik.setPriimek(request.getParameter("priimek")); 
    uporabnik.setEmail(request.getParameter("email")); 
    uporabnik.setKraj(request.getParameter("kraj")); 
    uporabnik.setPostnaStevilka(request.getParameter("postnaStevilka")); 

    ArrayList<Uporabnik> seznamUporabnikov = new ArrayList<Uporabnik>(); //array with i want to display 
    seznamUporabnikov.add(uporabnik); 
    session.setAttribute("seznamUporabnikov", seznamUporabnikov); %> 

    <form method="post" action="Registracija.jsp"> 
    Ime: <input type="text" name="ime"/> <br/> 
    Priimek: <input type="text" name="priimek"/> <br/> 
    Email: <input type="text" name="email"/> <br/> 
    Kraj: <input type="text" name="kraj"/> <br/> 
    Postna stevilka: <input type="text" name="postnaStevilka"/> <br/> 
    <input type="submit" name="potrdi" value="Vnesi"> 
    <input type="reset" name="tabelaReset" value="Izbrisi iz tabele"> 
    <input type="submit" name="resetiraj" value="Izbrisi podatke"> 
    </form> 

    <br/> Seja: <%=session.getAttribute("Oseba")%> <hr/> 

    <% if (request.getParameter("potrdi")!=null) { 
     session.setAttribute("Oseba", uporabnik); 
     } %> 
    <% if (request.getParameter("resetiraj")!=null) { 
     session.setAttribute("Oseba", null); 
     } %> 
+2

Вы продолжаете создавать новый массив. Вместо этого извлеките * существующий * массив из сеанса и добавьте 'uporabnik' в * существующий * массив. –

+0

Registracija.jsp, может возникнуть проблема, поскольку форма submit имеет URL-адрес этого jsp –

+0

@AlpeshGediya. Или может быть, что OP каждый раз создает новый массив и устанавливает его на сеанс там, где каждый новый массив добавляется каждый раз и установленный в сеанс. –

ответ

0

Хорошо, через 4 дня этот материал работает сейчас !!! Я так счастлив :) в любом случае .. спасибо, ребята, за то, что вы меня на правильном пути ...

ArrayList<Uporabnik> seznamUporabnikov=null; 
//check if already in session before creating. 
if(session.getAttribute("seznamUporabnikov") == null) {   
    seznamUporabnikov = new ArrayList<Uporabnik>(); 
    //array which I want to display 
    session.setAttribute("seznamUporabnikov", seznamUporabnikov); 
} else { 
    seznamUporabnikov = 
       (ArrayList<Uporabnik>)session.getAttribute("seznamUporabnikov"); 
} 

if (request.getParameter("potrdi") != null) { 
    seznamUporabnikov.add(uporabnik); 
} 


session.setAttribute("seznamUporabnikov", seznamUporabnikov); 
0

изменения этих линий:

... 
ArrayList seznamUporabnikov = new ArrayList(); //array with i want to display 
seznamUporabnikov.add(uporabnik); 
session.setAttribute("seznamUporabnikov", seznamUporabnikov); 
...
к
... 
ArrayList seznamUporabnikov=session.getAttribute("seznamUporabnikov"); 
if(seznamUporabnikov == null) { //check if already in session before creating. 
    ArrayList seznamUporabnikov = new ArrayList(); //array with i want to display 
} 
seznamUporabnikov.add(uporabnik); 
session.setAttribute("seznamUporabnikov", seznamUporabnikov); 
...

0

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

+0

Это работает только в том случае, если они не хотят его для каждого пользователя, и он синхронизирован и т. Д. Пока OP не указывает иначе, кажется, что ответы должны относиться к сохраняя список в сеансе. Поскольку проблема очевидна, я не вижу причин для продолжения работы в области приложения на данный момент. –

Смежные вопросы