You are on page 1of 4

VEBE 11 JSTL

JSTL Java Standard Tag Library

Olakava rad na JSP stranama pri ispisu vrednosti prenetih atributa

Nije potrebna provera Null Exception, ispisuje ako ima atributa a ako nema ne
ispisuje

Neophodno za korienje:

U okviru WEB-INF/lib direktorijuma dodaju se jar arhive:


o jstl.jar
o standard.jar

U okviru JSP stranice na kojoj se koristi JSTL na vrhu se dodaje:


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

Nain upotrebe:
Za prosleen jedan prost atribut na primer msg na JSP strani njegova vrednost se ispisuje na
sledei nain:

Bez JSTL
<%
String msg = (String) request.getAttribute("msg");
if (msg!= null && msg.length() > 0){
%>

<%=msg %>
<%} %>

Sa JSTL
${msg}

Za prosleen jedan sloen atribut na primer osoba (sa atributima: ime, prezime) na JSP strani
njihova vrednost se ispisuje na sledei nain:

Bez JSTL
<%
Osoba osoba = (Osoba) request.getAttribute("osoba");
if (osoba != null){
%>

<%=osoba.getIme() %>
<%=osoba.getPrezime() %>
<%} %>

Sa JSTL
${osoba.ime}
${osoba.prezime}

Za prosleen niz (listu) lo sloenih atributa na primer osoba (sa atributima: ime, prezime) na
JSP strani njihova vrednost se ispisuje na sledei nain:

Bez JSTL
<%

ArrayList<Osoba> lo = (ArrayList<Osoba>)request.getAttribute("lo");
if (lo != null) {
%>

for (Osoba osoba : lo) {


<%= osoba.getIme() %>
<%= osoba.getPrezime() %>
<%} %>
<%=} %>

Sa JSTL
<c:forEach var="osoba" items="${lo}">
${osoba.ime}
${osoba.prezime}
</c:forEach>

ZADATAK 1: Kreirati index.jsp sa formom za unos imena osobe koja se prosledjuje na


ServletJSTL get metodom.
Verzija 1: U servletu pokupiti prosleeni parametar i ako je OK proslediti ga na stranicu
ispis.jsp koja e ga ispisati 10 puta. Ako nije dobro prenet parametar ili je prazan vratiti
poruku Greska na index.jsp.
Verzija 2: kreirati bazu jstl.sql sa tabelom osoba (id, ime) i za dobro preneto ime kreirati
jednu osobu i pomou DAO metode insert uneti je u kreiranu bazu podataka.
Projekat. IP11.rar

ZADATAK 2: Za osobu sa imenom, prezimenom i JMBG realizivati unos osobe u bazu kao i
ispis svih osoba iz baze sa opcijama izmeni, obrisi. Probati realizovati sa ili bez JSTL.
Projekat. IP11-2.rar

POMO za rad sa mysql bazom preko DAO klase


1. u okviru WebContent/META-INF/context.xml fajla mysql connection url string treba da
izgleda ovako:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true">
<Resource name="jdbc/mysql" auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tutorial?
useUnicode=true&amp;characterEncoding=utf8&amp;"
username="root" password="" maxActive="20" maxIdle="10" maxWait="-1" />
</Context>

2. struktura DAO klase sa jednom primer metodom izgleda ovako:


import
import
import
import
import

java.sql.Connection;
java.sql.PreparedStatement;
java.sql.ResultSet;
java.sql.SQLException;
javax.sql.DataSource;

import javax.naming.InitialContext;
import javax.naming.NamingException;

public class OsobaDAO {


private DataSource ds;
// DEFINICIJA KONEKCIONIH STRINGOVA
private static String SQLSTRING = "UPDATE osoba
SET JMBG=12129668911 WHERE ime=?";
// DEFINICIJA KONSTRUKTORA ZA PODESAVNJE KONEKCIJE
public OsobaDAO(){
try {
InitialContext cxt = new InitialContext();
if ( cxt == null ) {
}
ds = (DataSource) cxt.lookup( "java:/comp/env/jdbc/mysql" );
if ( ds == null ) {
}
} catch (NamingException e) {
}
}
// DEFINICIJA METODE ZA UNOS OSOBE U BAZU
public void daoMetoda(String ime){
Connection con = null;
PreparedStatement pstm = null;
try {
con = ds.getConnection();
pstm = con.prepareStatement(SQLSTRING);
// dopunjavanje SQL stringa
pstm.setString(1, ime);

pstm.execute();
}
catch (SQLException e) {
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
// return (ako metoda vraca nesto) ...
}
// DEFINICIJA OSTALIH METODA ...

You might also like