我有:
一个名为index.jsp
的JSP文件,其中包含以下代码:
<%
JSONVerschillendeTalen jsonVerschillendeTalen = JSONVerschillendeTalen.getInstance();
JSONObject algemeenJSON = null;
JSONObject indexJSON = null;
try {
indexJSON = jsonVerschillendeTalen.getJSONObject(request, "Index.txt");
algemeenJSON = jsonVerschillendeTalen.getJSONObject(request, "Algemeen.txt");
} catch (ParseException e) {
e.printStackTrace();
}
%>
一个名为JSONVerschillendeTalen
的类,其中包含以下代码:
public class JSONVerschillendeTalen {
private static JSONVerschillendeTalen jsonVerschillendeTalen = new JSONVerschillendeTalen();
private JSONParser jsonParser = new JSONParser();
public static JSONVerschillendeTalen getInstance() {
return jsonVerschillendeTalen;
}
public JSONObject getJSONObject(HttpServletRequest req, String bestandsnaam) throws IOException, ParseException {
return (JSONObject) jsonParser.parse(new FileReader(getClass().getClassLoader()
.getResource("NL/" + bestandsnaam).getPath().replaceAll("%20", " ")));
}
private JSONVerschillendeTalen() {
}
}
每当我在普通类的index.jsp
文件中运行代码(用于测试)时,它都可以工作。当我在jsp文件中运行相同的代码时,它没有。有人知道为什么吗?
答案 0 :(得分:0)
尝试使用getClass().getResource()
代替getClass(). getClassLoader().getResource()
。第二种方法是相对于ClassLoader
root搜索资源,这很可能与Web容器中的sources目录不同。
关注answer可以很好地解释两者之间的差异。