我想制作一个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中,也已添加到项目的构建路径中):
尝试#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" %>