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

Odpovedet emailem