从JSP中的属性目录中获取文本文件

时间:2017-01-10 14:05:56

标签: java jsp servlets

我有:

一个名为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文件中运行相同的代码时,它没有。有人知道为什么吗?

Properties directory

1 个答案:

答案 0 :(得分:0)

尝试使用getClass().getResource()代替getClass(). getClassLoader().getResource()。第二种方法是相对于ClassLoader root搜索资源,这很可能与Web容器中的sources目录不同。

关注answer可以很好地解释两者之间的差异。