root/java/sql-vyuka/web/ajax.jspx

Revision 73:7252f80b39de, 6.9 KB (checked in by František Kučera <franta-hg@…>, 14 years ago)

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.

Line 
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"
6          version="2.0">
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"/>
10
11    <jsp:scriptlet>
12            request.setCharacterEncoding("UTF-8");
13            ajax.setKlient(request.getRemoteAddr(), request.getHeader("x-forwarded-for"), request.getRequestedSessionId());
14    </jsp:scriptlet>
15
16    <c:choose>
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>  -->
20            <c:choose>
21                <c:when test="${param.akce == 'historie'}">
22                    <c:set var="vysledek" value="${ajax.historie}" scope="request"/>
23                </c:when>
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"/>
27                </c:when>
28            </c:choose>
29            <!-- </Načteme výsledek z beany>  -->
30
31            <!-- <Tabulky> -->
32            <c:forEach var="tabulka" items="${vysledek.tabulky}">
33                <!-- <lokalizace> -->
34                <c:choose>
35                    <c:when test="${tabulka.lokalizovat}">
36                        <fmt:message key="${tabulka.zahlaviTip}" var="zahlaviTip"/>
37                    </c:when>
38                    <c:otherwise>
39                        <c:set value="${tabulka.zahlaviTip}" var="zahlaviTip"/>
40                    </c:otherwise>
41                </c:choose>
42                <!-- </lokalizace> -->
43                <c:choose>
44                    <c:when test="${fn:length(tabulka.zahlavi) == 1 &amp;&amp; tabulka.zahlavi[0] == 'pouze_xml'}">
45                        <!-- <XML tabulka> -->
46                        <pre><c:out value="${tabulka.hodnoty[0][0]}" /></pre>
47                        <!-- </XML tabulka> -->
48                    </c:when>
49                    <c:otherwise>
50                        <!-- <bežná tabulka> -->
51                        <table>
52                            <thead title="${zahlaviTip}">
53                                <tr>
54                                    <c:forEach var="zahlavi" items="${tabulka.zahlavi}">
55                                        <td>
56                                            <!-- <lokalizace> -->
57                                            <c:if test="${tabulka.lokalizovat}">
58                                                <fmt:message key="${zahlavi}" var="zahlavi"/>
59                                            </c:if>
60                                            <!-- </lokalizace> -->
61                                            <c:out value="${zahlavi}"/>
62                                        </td>
63                                    </c:forEach>
64                                </tr>
65                            </thead>
66                            <tbody>
67                                <c:forEach var="radek" items="${tabulka.hodnoty}">
68                                    <tr>
69                                        <c:forEach var="bunka" items="${radek}">
70                                            <!-- <formátováníPodleDatovýchTypů> -->
71                                            <c:choose>
72                                                <c:when test="${bunka.class == 'class java.sql.Timestamp'}">
73                                                    <td>
74                                                        <fmt:formatDate value="${bunka}" pattern="dd.MM.yyyy HH:mm:ss"/>
75                                                        <!-- uvnitř vzoru je nedělitelná mezera -->
76                                                    </td>
77                                                </c:when>
78                                                <c:when test="${bunka.class == 'class java.sql.Date'}">
79                                                    <td>
80                                                        <fmt:formatDate value="${bunka}" pattern="dd.MM.yyyy"/>
81                                                    </td>
82                                                </c:when>
83                                                <c:when test="${bunka.class == 'class java.lang.Integer' || bunka.class == 'class java.math.BigDecimal'}">
84                                                    <td class="cislo">
85                                                        <fmt:formatNumber value="${bunka}" pattern="###,###.###"/>
86                                                    </td>
87                                                </c:when>
88                                                <c:when test="${bunka.class == 'class java.lang.Boolean'}">
89                                                    <td>
90                                                        <c:choose>
91                                                            <c:when test="${bunka}">
92                                                                <fmt:message key="boolean.pravda.tip" var="pravda"/>
93                                                                <abbr title="${pravda}"><fmt:message key="boolean.pravda"/></abbr>
94                                                            </c:when>
95                                                            <c:otherwise>
96                                                                <fmt:message key="boolean.nepravda.tip" var="nepravda"/>
97                                                                <abbr title="${nepravda}"><fmt:message key="boolean.nepravda"/></abbr>
98                                                            </c:otherwise>
99                                                        </c:choose>
100                                                    </td>
101                                                </c:when>
102                                                <c:otherwise>
103                                                    <td>
104                                                        <c:out value="${bunka}" />
105                                                    </td>
106                                                </c:otherwise>
107                                            </c:choose>
108                                            <!-- </formátováníPodleDatovýchTypů> -->
109                                        </c:forEach>
110                                    </tr>
111                                </c:forEach>
112                            </tbody>
113                        </table>
114                        <!-- </bežná tabulka> -->
115                    </c:otherwise>
116                </c:choose>
117            </c:forEach>
118            <!-- </Tabulky> -->
119
120            <!-- <Hlášky> -->
121            <c:forEach var="hlaska" items="${vysledek.hlasky}">
122                <p class="vysledek${hlaska.typ}">
123                    <c:out value="${hlaska.text}" escapeXml="${hlaska.escapovat}" />
124                </p>
125            </c:forEach>
126            <!-- </Hlášky> -->
127        </c:when>
128        <!-- </Akce: Historie a vykonání SQL příkazu> -->
129
130
131        <!-- <Akce: Nápověda> -->
132        <c:when test="${param.akce == 'napoveda'}">
133            <!-- <VolbaMetody> -->
134            <c:choose>
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"/>
138                </c:when>
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"/>
142                </c:when>
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"/>
146                </c:when>
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"/>
150                </c:when>
151            </c:choose>
152            <!-- </VolbaMetody> -->
153
154            <!-- <Výpis> -->
155            <c:choose>
156                <c:when test="${pruvodce.lokalizovat}">
157                    <h1><fmt:message key="${pruvodce.nadpis}"/></h1>
158                    <fmt:message key="${pruvodce.obsah}"/>
159                </c:when>
160                <c:otherwise>
161                    <h1><c:out value="${pruvodce.nadpis}"/></h1>
162                    <c:out value="${pruvodce.obsah}" escapeXml="false"/>
163                </c:otherwise>
164            </c:choose>
165            <form action="#" id="pruvodceData">
166                <textarea name="id" cols="100" rows="1">${pruvodce.id}</textarea>
167            </form>
168            <!-- </Výpis> -->
169        </c:when>
170        <!-- </Akce: Nápověda> -->
171    </c:choose>
172</jsp:root>
Note: See TracBrowser for help on using the browser.