2013-05-25 48 views
0

我的新節目和這個問題困擾我3天直...對象到數組JSP

我有.JSP網站一個帖子的形式收集姓名,郵箱,...和所有這些信息保存在對象USER中。我想將用戶保存在陣列中並將它們顯示在同一個站點上。但是每次我在表單中使用提交按鈕時,都會創建新的會話,並且在數組輸出信息中只有一個用戶。 我該怎麼做才能解決這個問題? PS:在這個階段,我不能使用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

你一直在創建一個新的數組。相反,從會話中檢索* existing *數組,並將'uporabnik'添加到* existing *數組中。 –

+0

Registracija.jsp,可能有問題,因爲表單提交有這個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聲明否則,似乎答案應該與保持列表中的會話。由於這個問題很明顯,我認爲在這一點上沒有任何理由保留在應用範圍內。 –