Pobranie wartosci bean do javy

0

Witam, mam problem z pobraniem wartosci beana do javy. Znalazłem na forum podobny temat ale nie rozwiązało to mojego problemu.Dopiero zaczynam programować w jsp więc prosze o wyrozumiałość.
Sprawa wygląda następująco, tworze klase logowanie.java do której zapisuje informacje sesyjne.
Klasa wygląda następująco:

package w5;

/**
 *
 * @author Szakal
 */
public class logowanie {
     
    private String login;
    private String kat;
    private String haslo;
    private byte zalogowany; //0 - wylogowany; 1 -zalogowany
    
    public logowanie()
    {
      zalogowany=0;
          }
    
    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

       public String getHaslo() {
        return haslo;
    }

    public void setHaslo(String haslo) {
    this.haslo = haslo;

  }

    public byte getZalogowany() {
        return zalogowany;
    }

    public void setZalogowany(byte zal_wyl) {
        this.zalogowany = zal_wyl;

    }
      public String getKat() {
        return kat;
    }
    public void setKat(String kat) {
        this.kat = kat;
    }   
}


Aby wyświetlić informacje zawarte w pliku sesyjnym wpisuje następujacy kod :

<jsp:useBean id="lg" scope="session" class="w5.logowanie" />
<%
out.println(" zalogowany:"+lg.getZalogowany());
out.println(" kategoria:"+lg.getKat());
%>

Kolejnym etapem mojej pracy jest wykorzystanie tych danych do nawigacji strony jsp.

if(  lg.getZalogowany().equals(1)  ) {  
        out.println("<a href=userpanel.jsp>Userpanel</a>);
}
else
out.println("Niezalogowany uzytkownik");

W miejsce " lg.getZalogowany()" powinienem wstawić do pętli if zmienna lecz nie bardzo wiem jak to zrobić.
Probowałem jeszcze w ten sposób ale nie wiem jak zimportować PropertyUtils:

 w5.logowanie dane = new w5.logowanie();
PropertyDescriptor beanProperties[] =
                PropertyUtils.getPropertyDescriptors(dane);
1

Dobrze że dopiero zaczynasz. Zakończ więc i nie rób sobie krzywdy. Zajmij się jakaś technologią która nie jest starsza od ciebie.

0

private byte zalogowany;

Nie słyszałeś o typie boolean?
Poza tym Shalom dobrze radzi - np. JSF 2 będą lepszym wyborem.

0

Strona ta jest robiona pod zaliczenie przedmiotu a wykładowca zażyczył sobie zeby to było napisane w tym właśnie języku. Tak więc jesli masz pomysl na rozwiązanie tego problemu w typie boolean to prosiłbym o jakąś podpowiedz od czego zacząć. Caly semestr to co mialem na zajeciach tylko jakies teoretyczne podstawy, uczyc się tego jezyka na powaznie zeby cos zrobic zacząłem 2 dni temu i nie ogarniam tego za dobrze.

0

W miejsce " lg.getZalogowany()" powinienem wstawić do pętli if zmienna lecz nie bardzo wiem jak to zrobić.

Nie bardzo rozumiem, jeżeli masz zmienną "boolean zalogowany", to mozesz zrobić:

if(zalogowany) {

} else {

}

Oczywiście nikt nie robi tak w jsp: http://www.tutorialspoint.com/jsp/jsp_security.htm

0

Nie działa w ten sposób.

<div class="panel"> 
   <jsp:useBean id="lg" scope="session" class="w5.logowanie" />
   
       <% 
      if(zalogowany=1) {
 
} else {
 
} 
   %>
   </div>
cannot find symbol
symbol: variable zalogowany
location: class SimplifiedJSPServlet

Poszperałem w necie jeszcze troche i znalazłem takie oto rozwiązanie ale pojawił się problem z konwersją przy porownaniu w pętli if:

<div class="panel"> 
   <jsp:useBean id="lg" scope="session" class="w5.logowanie" />
     <% 
     byte n;
     n=1;
     byte name = lg.getZalogowany();
     out.println("Status: "+name);
if(name=n)  // incompatibile types : byte cannot be converted to boolean
     {
   out.println("Zalogowany: <a href='logout.jsp'>Wyloguj</a> ");
  } 
     else {
  { 
   out.println("Niezalogowany ");
   } }
   %> 
   </div>
0

Jeden = to przypisanie, a nie porównanie. Spróbuj

if (name == n)
0

Dzięki wielkie za pomoc, działa. Dla liczb '==' , a dla string 'String.equals(x)'.
Robie teraz menu wczytywane z bazy danych, nie bardzo miałem pomysł jak to zrobić więc zrobiłem tak że
wczytuje z bazy danych dane i wpisuje do formularza ktory przekazuje je do zawartosci strony po wcisnieciu submit.
Troche nie bardzo to wygląda ale nie miałem pomysłu jak zrobić to za pomocą linków zeby przeładować zawartość strony z przekazaniem parametru ID do zawartości.

0
krzysiek12a napisał(a):

Troche nie bardzo to wygląda ale nie miałem pomysłu jak zrobić to za pomocą linków zeby przeładować zawartość strony z przekazaniem parametru ID do zawartości.

Nie bardzo rozumiem założenie takiego menu ale przekazac parametr w linku mozesz tak.

<a href="home.jsp?id='4'" />

i zamiast 4 mozesz np zmienna podac jesli ma ona byc generowana.

0

Dzieki wielkie, testowałem ten sposób i działa. Mam kolejny problem. Chce zrobic dodawanie komentarzy, formularz wygląda tak:

<center><b>Dodaj komentarz:&nbsp</b><center><br>
<form  method=POST >
<table>
<tr><td><b>Tresc:</b> &nbsp&nbsp</td><td><textarea input type=text name=komentarz rows=5 cols=50 ></textarea></td>
<tr><td colspan=2 align=center><br><input type=submit  name=dodaj   value='&nbsp&nbsp&nbsp&nbsp Dodaj &nbsp&nbsp&nbsp&nbsp'  > 
</td></tr>
</table></form>

A obsługa do formularza wygląda tak:

 <%
    String komentarz=request.getParameter("komentarz"); 
    
    if (komentarz == null | komentarz == "") { 
       out.println("Podaj komentarz ");  
     } 
     else {
  // tu beda instrukcje laczenia z baza danych i insert do bazy   
     out.println("test: "+komentarz+"ss");  
         
     }

Otwieram strone z komentarzem to jest widoczny status Podaj komentarz.
Zatwierdzam komentarz z pustym polem.
Status sie zmienia na test: ss

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