在我的应用程序中,我需要为 JSP 页面中的 XML 文件准备一个路径。我正在做这样的事情:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<!DOCTYPE html>
<c:set var="abs_path" value='<%= getServletContext().getRealPath("").replace(" ", "%20").replace("\\", "/") %>' />
但是有一个问题,我得到以下异常:
org.apache.jasper.JasperException:无法为 JSP 编译类:
An error occurred at line: 6 in the jsp file: /users.jsp
String literal is not properly closed by a double-quote
3: <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
4: <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
5: <!DOCTYPE html>
6: <c:set var="abs_path" value='<%= getServletContext().getRealPath("").replace(" ", "%20").replace("\\", "/") %>' />
显然是关于这部分:.replace("\\", "/")
当我删除它时,我没有得到这个异常。
那是怎么回事?我将非常感谢任何线索。
编辑:
我通过以下方式使用此变量:
<c:import url="file:/${abs_path}/MyProject/xml/users.xml" var="inputDoc" charEncoding="UTF-8" />
<c:import url="xsl/users_list.xsl"
var="stylesheet" charEncoding="UTF-8" />
<x:transform
xml = "${inputDoc}"
xslt = "${stylesheet}">
</x:transform>