Podpora XML tabulek – výstupu.
Pokud výsledek dotazu má jen jeden sloupec a ten se jmenuje "pouze_xml",
nevykreslí se klasická tabulka, ale obsah prvního záznamu se vloží do <pre> … </pre>
Uživatel si tak může přehledněji zobrazit XML výstup generovaný databází.
Je možné kombinovat i s klasickými tabulkami:
SELECT 123 AS číslo;
SELECT query_to_xml('SELECT * FROM tabulka;', true, false, '…') AS pouze_xml;
SELECT * FROM tabulka;
Zobrazí klasickou tabulku, potom XML výstup uzavřený v <pre/> a potom zase klasickou tabulku.
1 <?xml version="1.0" encoding="UTF-8"?>
2 <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
3 xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
4 xmlns:fn="http://java.sun.com/jsp/jstl/functions"
5 xmlns:c="http://java.sun.com/jsp/jstl/core"
7 <jsp:directive.page contentType="text/html" pageEncoding="UTF-8"/>
8 <fmt:setBundle basename="cz.frantovo.sql.vyuka.preklady" scope="application"/>
9 <jsp:useBean id="ajax" class="cz.frantovo.sql.vyuka.web.Ajax" scope="request"/>
12 request.setCharacterEncoding("UTF-8");
13 ajax.setKlient(request.getRemoteAddr(), request.getHeader("x-forwarded-for"), request.getRequestedSessionId());
17 <!-- <Akce: Historie a vykonání SQL příkazu> -->
18 <c:when test="${param.akce == 'historie' || param.akce == 'vykonat'}">
19 <!-- <Načteme výsledek z beany> -->
21 <c:when test="${param.akce == 'historie'}">
22 <c:set var="vysledek" value="${ajax.historie}" scope="request"/>
24 <c:when test="${param.akce == 'vykonat'}">
25 <jsp:setProperty name="ajax" property="sqlPrikaz" value="${param.sql}"/>
26 <c:set var="vysledek" value="${ajax.SQLVysledek}" scope="request"/>
29 <!-- </Načteme výsledek z beany> -->
32 <c:forEach var="tabulka" items="${vysledek.tabulky}">
35 <c:when test="${tabulka.lokalizovat}">
36 <fmt:message key="${tabulka.zahlaviTip}" var="zahlaviTip"/>
39 <c:set value="${tabulka.zahlaviTip}" var="zahlaviTip"/>
42 <!-- </lokalizace> -->
44 <c:when test="${fn:length(tabulka.zahlavi) == 1 && tabulka.zahlavi[0] == 'pouze_xml'}">
45 <!-- <XML tabulka> -->
46 <pre><c:out value="${tabulka.hodnoty[0][0]}" /></pre>
47 <!-- </XML tabulka> -->
50 <!-- <bežná tabulka> -->
52 <thead title="${zahlaviTip}">
54 <c:forEach var="zahlavi" items="${tabulka.zahlavi}">
57 <c:if test="${tabulka.lokalizovat}">
58 <fmt:message key="${zahlavi}" var="zahlavi"/>
60 <!-- </lokalizace> -->
61 <c:out value="${zahlavi}"/>
67 <c:forEach var="radek" items="${tabulka.hodnoty}">
69 <c:forEach var="bunka" items="${radek}">
70 <!-- <formátováníPodleDatovýchTypů> -->
72 <c:when test="${bunka.class == 'class java.sql.Timestamp'}">
74 <fmt:formatDate value="${bunka}" pattern="dd.MM.yyyy HH:mm:ss"/>
75 <!-- uvnitř vzoru je nedělitelná mezera -->
78 <c:when test="${bunka.class == 'class java.sql.Date'}">
80 <fmt:formatDate value="${bunka}" pattern="dd.MM.yyyy"/>
83 <c:when test="${bunka.class == 'class java.lang.Integer' || bunka.class == 'class java.math.BigDecimal'}">
85 <fmt:formatNumber value="${bunka}" pattern="###,###.###"/>
88 <c:when test="${bunka.class == 'class java.lang.Boolean'}">
91 <c:when test="${bunka}">
92 <fmt:message key="boolean.pravda.tip" var="pravda"/>
93 <abbr title="${pravda}"><fmt:message key="boolean.pravda"/></abbr>
96 <fmt:message key="boolean.nepravda.tip" var="nepravda"/>
97 <abbr title="${nepravda}"><fmt:message key="boolean.nepravda"/></abbr>
104 <c:out value="${bunka}" />
108 <!-- </formátováníPodleDatovýchTypů> -->
114 <!-- </bežná tabulka> -->
121 <c:forEach var="hlaska" items="${vysledek.hlasky}">
122 <p class="vysledek${hlaska.typ}">
123 <c:out value="${hlaska.text}" escapeXml="${hlaska.escapovat}" />
128 <!-- </Akce: Historie a vykonání SQL příkazu> -->
131 <!-- <Akce: Nápověda> -->
132 <c:when test="${param.akce == 'napoveda'}">
133 <!-- <VolbaMetody> -->
135 <c:when test="${param.pruvodce == 'podleId'}">
136 <jsp:setProperty name="ajax" property="idPruvodce" value="${param.idPruvodce}"/>
137 <c:set var="pruvodce" value="${ajax.pruvodcePodleId}" scope="request"/>
139 <c:when test="${param.pruvodce == 'podleKodu'}">
140 <jsp:setProperty name="ajax" property="kodPruvodce" value="${param.kodPruvodce}"/>
141 <c:set var="pruvodce" value="${ajax.pruvodcePodleKodu}" scope="request"/>
143 <c:when test="${param.pruvodce == 'predchozi'}">
144 <jsp:setProperty name="ajax" property="idPruvodce" value="${param.idPruvodce}"/>
145 <c:set var="pruvodce" value="${ajax.pruvodcePredchozi}" scope="request"/>
147 <c:when test="${param.pruvodce == 'nasledujici'}">
148 <jsp:setProperty name="ajax" property="idPruvodce" value="${param.idPruvodce}"/>
149 <c:set var="pruvodce" value="${ajax.pruvodceNasledujici}" scope="request"/>
152 <!-- </VolbaMetody> -->
156 <c:when test="${pruvodce.lokalizovat}">
157 <h1><fmt:message key="${pruvodce.nadpis}"/></h1>
158 <fmt:message key="${pruvodce.obsah}"/>
161 <h1><c:out value="${pruvodce.nadpis}"/></h1>
162 <c:out value="${pruvodce.obsah}" escapeXml="false"/>
165 <form action="#" id="pruvodceData">
166 <textarea name="id" cols="100" rows="1">${pruvodce.id}</textarea>
170 <!-- </Akce: Nápověda> -->