Tapiku, co bys mi s takovou argumentaci odvodil z existence
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> ? ;)
Tuhle poznamku chapu (mozna nespravne) jako vyjadreni averze vuci JSTL
SQL. Ta ovsem neni na miste, protoze:
1) NAVRHOVE VZORY NEJSOU DOGMA. To, ze neni neco v souladu s nejakym
navrhovym vzorem (a muze to byt i proslule MVC), neznamena, ze je to
spatne reseni.
2) Pro nektere veci je JSTL SQL jen tezko prekonatelne. Pokud pujde
napr. o vypsani obsahu databazove tabulky, jen tezko budeme hledat
elegantnejsi reseni, nez je toto:
<sql:setDataSource dataSource="jdbc/ExchangeDS"/>
<sql:query var="rates">
SELECT MENA1, MENA2, KURZ FROM KURZY
</sql:query>
<table border="1" cellpadding="5" cellspacing="5">
<c:forEach var="rate" items="${rates.rows}">
<tr>
<td><c:out value="${rate.MENA1}"/></td>
<td><c:out value="${rate.MENA2}"/></td>
<td><c:out value="${rate.KURZ}"/></td>
</tr>
</c:forEach>
</table>
A ze to neni v souladu s MVC? Na to odpovidam otazkou "No a?".
Navrhove vzory maji smysl tam, kde neco prinaseji. Zavedeni
samostatneho controlleru by tady prineslo jen nabobtnani aplikace,
ktere je pri takto jednoduchem zadani (tj. "vypsat tabulku smennych
kurzu"), neopodstatnele.
Odmitat toto reseni je jako prohlasit o kalkulacce, ktera ma jen
zakladni operace +, -, *, /, ze je spatna a pritom pominout ucel
pouziti. Jestlize tuto kalkulacku chcete pouzivat ve smenarne pro
prepocet men, tak je zbytecne po ni pozadovat napr. statisticke funkce
ci vykreslovani grafu.
Dalsi dobre pouziti JSTL SQL je v prototypovani aplikaci, kde nas veci
jako osetreni chyb vetsinou netrapi.
Z.T.
--
Zdenek Tronicek
Department of Computer Science and Engineering
Prague tel: +420 2 2435 7410
http://cs.felk.cvut.cz/~tronicek