在jsp文件中,我正在尝试导航到加载xml文件。 JSP文件的位置是
/projectFolder/layout/applicationName/index.jsp
xml文件的位置
/projectFolder/data/files/myfile.xml
项目文件夹的位置在每个环境中都不同,例如:在我的本地电脑中,位置是:
c:\myApps\BPServer\tomcat\webapps\projectFolder
当我使用以下代码时:
<c:set var="xmlfile" value="${pageContext.request.contextPath}/data/files/myfile.xml"/>
xmlFile的值设置为:
c:\projectFolder\data\files\myfile.xml
然而奇怪的是,如果我使用xmlfile作为href
,那么找到正确的路径和文件:
<jsp:attribute name="rightContent"><a href="${xmlfile}">XML FILE</a></jsp:attribute>
任何想法如何才能获得正确的文件路径以便以下工作:
boolean canLocateFile = fileExists(xmlfile);
public static boolean fileExists(String filepath)
{
File f = new File(filepath);
return f.exists();
}
答案 0 :(得分:1)
您可以从ServletContext获取应用程序的根路径。
如果你有文件的相对路径,你可以使用servletContext.getRealPath()获得它的真实路径。
例如:
String realPath = servletContext.getRealPath("/data/files/myfile.xml");
您还可以使用servletContext.getContextPath()获取应用程序的根路径。然后可以使用根路径来引用您的文件。 例如:
String rootPath = servletContext.getContextPath();
String filePath = rootPath + "/data/files/myfile.xml";
如果您的类中无法访问servletContext,您可以将应用程序的根路径存储在init-param或属性中,并可以使用它。