一尘不染

如何在Eclipse中设置JSP页面以将XML和XSL用于Google AppEngine?缺少jar?

jsp

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

我想将xml内容放在jsp页面中,以便我可以基于显示的xml收集表单数据。我是App
Engine和jsp的新手,但事情没有我希望的那么简单。我已经在下面复制了我的xml和xsl文件的片段。我还发布了两次不同的jsp尝试及其伴随的错误。我怀疑我的问题可能与我正在使用的jar有关,因此我还列出了项目中包含的jar列表。

我已经阅读了很多文档,但是我无法弄清楚。我们欢迎所有的建议!

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或属性指令,属性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
  • datanucleus-api-jdo-3.1.3.jar
  • datanucleus-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
  • taglibs-xsl.jar
  • taglibs.jar
  • xmlbeans-2.3.0.jar

阅读 233

收藏
2020-06-10

共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" %>
2020-06-10