0

我想制作一个 App Engine 应用程序,该应用程序将显示由 xsl 文件转换的 xml 内容。我正在使用 GAE Eclipse 插件进行开发。

我想把xml内容放在一个jsp页面中,这样我就可以根据显示的xml收集表单数据。我是 App Engine 和 jsp 的新手,事情并不像我希望的那样简单。我在下面复制了我的 xml 和 xsl 文件的片段。我还发布了我所做的两种不同的 jsp 尝试及其伴随的错误。我怀疑我的问题可能与我正在使用的罐子有关,所以我还包括了一个包含在我的项目中的罐子列表。

我已经翻阅了大量的文档,但我无法弄清楚这一点。我们欢迎所有的建议!

XML (10013.xml):

 <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="evex_display.xsl"?>
    <queryresponse>
        <queryinfo>
            <rowStart>0</rowStart>
            <family>entrez</family>
            ...
        </queryinfo>
    <queryresults>
    <events>
    <event id="38597010" averageConfidence="-0.115586">
    ...

XSL (evex_display.xsl):

 <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="evex_style.css" />
    <script type="text/javascript" src="utils.js"></script> 
    </head>

    <body>
    <div class="container">
        ...
        <xsl:for-each select="queryresponse/queryresults/events/event">
        <div class="event"> 
    ...

JSP 尝试 #1(基于https://stackoverflow.com/a/10563605/1590763上的示例):

<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>

<c:import url="10013.xml" var="xmldocument"/>
<c:import url="evex_display.xsl" var="xslt"/>
<x:transform xml="${xmldocument}" xslt="${xslt}"/>

错误响应:

HTTP 错误 500 访问 /test3.jsp 时出现问题。原因:/test3.jsp(6,0) 根据标签文件中的TLD或attribute指令,attribute xml不接受任何表达式

JSP 尝试 #2(基于http://www.uriit.ru/japan/Our_Resources/Doc_iAS/jsp.106/devguide/xml.htm#7.1中的示例):

<%@ taglib uri="oracle.jsp.parse.OpenJspRegisterLib" prefix="jml" %>
<jml:transform href="evex_display.xsl"> 
    <%@ include file="10013.xml" %>
</jml:transform>

错误响应:

HTTP 错误 500 访问 /test2.jsp 时出现问题。原因:找不到文件“/oracle.jsp.parse.OpenJspRegisterLib”

JARS(在 war/WEB-INF/lib 中,还添加到项目的构建路径中):

  • appengine-api-1.0-sdk-1.8.5.jar
  • appengine-api-labs.jar
  • appengine-endpoints.jar
  • appengine-jsr107cache-1.8.5.jar
  • asm-4.0.jar
  • 数据核-api-jdo-3.1.3.jar
  • 数据核-api-jpa-3.1.3.jar
  • datanucleus-appengine-2.1.2.jar
  • datanucleus-core-3.1.3.jar
  • dom4j-1.6.1.jar
  • geronimo-jpa_2.0_spec-1.0.jar
  • jdo-api-3.0.1.jar
  • jsoup-1.7.2.jar
  • jsr107cache-1.1.jar
  • jstl-1.2.jar
  • jta-1.1.jar
  • poi-3.9-20121203.jar
  • poi-ooxml-3.9-20121203.jar
  • poi-ooxml-schemas-3.9-20121203.jar
  • stax-api-1.0.1.jar
  • 标记库-xsl.jar
  • 标记库.jar
  • xmlbeans-2.3.0.jar
4

1 回答 1

1

尝试 #1 通过更改 taglib uri 得到修复,如下所示:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
于 2013-10-17T18:12:51.033 回答