Книга: XSLT

Применение XSLT с Java Server Pages

Применение XSLT с Java Server Pages

Для работы с активными серверными страницами я использовал процессор MSXML фирмы Microsoft, но серверные страницы Java (Java Server Pages, JSP) не обязаны выполняться на серверах на платформе Windows, поэтому с JSP я не использую MSXML. Для выполнения XSLT-преобразования и отправки результатов в браузер клиента я воспользуюсь API процессора Xalan для работы с Java.

Например, при помощи Xalan можно создать planets.html на сервере как временный документ (этот код предполагает, что planets.xml и planets.xsl расположены в том же каталоге, что и сценарий JSP) таким образом:

<%@ page errorPage="error.jsp" language="java"
 contentType="text/html" import="org.apache.xalan.xslt.*;java.iо.*" %>
<%
 try {
  XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
  processor.process(new XSLTInputSource("planets.xml"),
   new XSLTInputSource("planets.xsl"),
   new XSLTResultTarget("planets.html"));

 } catch(Exception e) {}

 .
 .
 .

Теперь все, что нужно сделать, — это открыть документ и отправить его обратно клиенту (листинг 10.13).

Листинг 10.13. XSLT на сервере с применением JSP

<%@ page errorPage="error.jsp" language="java"
 contentType="text/html" import="org.apache.xalan.xslt.*;java.iо.*" %>
<%
 try {
  XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
  processor.process(new XSLTInputSource("planets.xml"),
   new XSLTInputSource("planets.xsl"),
   new XSLTResultTarget("planets.html"));
 } catch(Exception e) {}
 FileReader filereader = new FileReader("planets.html");
 BufferedReader bufferedreader = new BufferedReader(filereader);
 String instring;
 while((instring = bufferedreader.readLine()) != null) { %>
  <%= instring %>
 <% } 
 filereader.close();
 pw.close();
%>

Теперь все готово. Результаты применения этого сценария JSP показаны на рис. 10.6.


Рис. 10.6. Применение XSLT с JSP

Оглавление книги


Генерация: 1.693. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз