vezbe 07 - prosledjivanje atributa

Post on 09-Nov-2015

13 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

DESCRIPTION

JAva

TRANSCRIPT

VEBE 07 PROSLEIVANJE ATRIBUTASet i Get Atribute U MVC modelu Servlet ima ulogu da kontrolie tok informacija i prosleuje odgovarajue podatke na eljene stranice.Objekat bilo kojeg tipa se iz Servleta moe poslati preko request objekta metodom:

request.setAttribute(ime atributa, objekat);Na JSP stranici (ili Servlet-u) se objekat preuzima takoe preko request objekta metodom:

request.getAttribute(ime atributa);Poto se sa getAttribute moe pokupiti bilo koji tip objekta neophodno je uraditi kastovanje ili naznaku kojeg tipa je pokupljeni atribut.

PRIMER: Prosleivanje atributa msg iz Servleta i njegovo prihvatanje na JSP strani.

SERVLETJSP

request.setAttribute("msg", msg);String msg = (String) request.getAttribute("msg");

Sa ovako osmiljenim prenosom atributa JSP se moe dizajnirati da predstavlja VIEW za odreeni tip objekta ili njegovu kolekciju, stim to nije vano ko e proslediti objekat na ispis, pod pretpostavkom da zna ime atributa koji se alje.

Link sa parametrimaU velikom broju sluajeva neophodno je pomou nekog linka pozvati Servlet i u isto vreme proslediti mu i parametre za obradu.

PRIMER: Link ka Servletu ServletOsoba sa prosleenim parametrom akcija=ispis i br=3.

ISPIS

Ovako prosleeni parametri se u Servletu kupe u doGet metodi sa: String akcija = request.getParametar("akcija");

String br = request.getParametar("br");

ZADATAK:Kreirati klasu Auto sa :

parametrima: marka, cena, godite.

Konstuktorima

Get i set metodama

Kreirati stranicu index.jsp sa linkovima na: Stranicu unos.jsp.

ServletAuto sa parametrom ispis=lista ServletAuto sa parametrom ispis=jedan i br=3Kreirati stranicu unos.jsp koja:

Sadri formu za prosleivanje marke, cene i godita na ServletAuto post metodom.

Kupi atribut msg i ispisuje ga ako postojiKreirati stranicu auto.jsp za ispis jednog prosleenog auta tako to:

Kupi atribut Auto auto.

Kreira odgovarajuu tabelu i ispisuje podatke auta

Kreirati stranicu listaAuta.jsp za ispis prosleene liste auta tako to:

Kupi atribut ArrayListlistaAuta.

Kreira odgovarajuu tabelu i ispisuje podatke svih autaKreirati servlet ServletAuto koji u metodama :

doPost kupi parametre sa forme, proverava format cene i godita, kreira auto i prosleuje ga na auto.jsp preko imena atributra auto doGet kupi parametar ispis, i ako je ispis jednako:

lista kreira jednu listu auta i prosleuje je na listaAuta.jsp

jedan kupi parametar br i prosleuje auto iz liste sa pozicije br na auto.jsp.

PROBATI ZA VEBU grupni rad na projektu:

GRUPA 1 : kreira, index.jsp, listaAuta.jsp GRUPA 2: kreira unos.jsp, Auto.jsp,

GRUPA 3: kreira Auto.java, ServletAuto.java

Kada odgovarajua grupa zavri svoj deo kopira ga na server u odgovarajui zajedniki folder da ga preuzmu druge dve grupe.

Ako se ispotuju pravila saradnje po kompletiranju projekta sve bi trebalo da radi !!!

REENJE:public class Auto {

private String marka;

private int cena;

private int godiste;

public Auto(String marka, int cena, int godiste ) {

this.marka = marka;

this.cena = cena;

this.godiste = godiste;

} public Auto(){}

public String getMarka(){ return marka;}

public void setMarka(String marka){this.marka = marka;}

public int getCena(){return cena;}

public void setCena(int cena){this.cena = cena;}

public int getGodiste(){return godiste;}

public void setGodiste(int godiste){this.godiste = godiste;}}

index.jsp UNOS
LISTA
JEDAN

unos.jsp

MARKA :

CENA :

GODISTE :

poetna

0) {

%>

auto.jsp

PODACI O AUTOMOBILU

MARKA

CENA

GODISTE

listaAuta.jsp

PODACI O AUTOMOBILIMA

MARKA

CENA

GODISTE

ServletAuto.jsppublic class ServletAuto extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(

HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

ArrayList la = new ArrayList();

// simuliramo listu od 5 auta

la.add(new Auto("Skoda", 2000, 1998));

la.add(new Auto("BMW", 5800, 2004));

la.add(new Auto("Toyota", 3500, 2002));

la.add(new Auto("Audi", 4000, 2005));

la.add(new Auto("Kec", 750, 1998));

String ispis = req.getParameter("ispis");

if (ispis != null && ispis.length()>0){

if (ispis.equals("lista")){

// prosledjivanje liste na ispis

req.setAttribute("listaAuta",la);

req.getRequestDispatcher("listaAuta.jsp").forward(req, resp);

}else if (ispis.equals("jedan")){

String br = req.getParameter("br");

if (br != null && br.length()>0){

// prosledjivanje auta na ispis

req.setAttribute("auto",la.get(new Integer(br)));

req.getRequestDispatcher("auto.jsp").forward(req, resp);

}

}

}else {

req.setAttribute("msg","Parametri nisu dobrog formata !!!");

req.getRequestDispatcher("index.jsp").forward(req, resp);

}

}// kraj doGet

protected void doPost(

HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

String marka = req.getParameter("marka");

String cenaStr = req.getParameter("cena");

String godisteStr = req.getParameter("godiste");

if (marka != null && marka.length()>0 &&

cenaStr != null && cenaStr.length()>0 &&

godisteStr != null && godisteStr.length()>0){

try {

int cena = Integer.parseInt(cenaStr);

int godiste = Integer.parseInt(godisteStr);

Auto a = new Auto(marka, cena, godiste);

req.setAttribute("auto", a);

req.getRequestDispatcher("auto.jsp").forward(req, resp);

} catch (Exception e) {

req.setAttribute("msg","Cena, godiste nisu dobrog formata");

req.getRequestDispatcher("unos.jsp").forward(req, resp);

}

}else{

req.setAttribute("msg","morate popuniti sva polja !!!");

req.getRequestDispatcher("unos.jsp").forward(req, resp);

}

}// kraj doPost}

1

top related