javaweb项目中,如何通过js获取src下的xml文件

现在问题出在了获取文件路径上,js是放在webroot下的一个文件夹里,而xml文件在java的src下,如何获取到这个路径并读取?

String path = getClass().getClassLoader().getResource("test.xml").getPath();

xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;

String path = getClass().getClassLoader().getResource("test.xml").getPath();
js获取到地址后,由于兼容问题,读取xml很麻烦。所以在jsp中用java获取xml、读取xml,然后再将读取到的内容赋值给js的变量。

js是执行在浏览器里的脚本,当它执行的时候跟你的project工程已经没有关系了,所以它识别不了什么工程路径。除非把xml放在js工程目录里一份。或者就像上面congyeyan9940 说的,用jsp获取xml,再把内容赋值给js变量。

提供思路:
自己提供一个对外支持访问的方法,这个方法就是读取xml,将字符串打印
用js里面调用自定义方法,得到内容进行下步操作
不过,建议换种方式,如后台处理出需要的参数传到页面 Or jsp页面直接写java代码

看业务

正常js通过ajax请求到后台,后台用java代码解析xml 解析结果 通过ajax 返回给js

或者 js直接解析xml 获取数据,https://blog.csdn.net/luckfu/article/details/17654525 例子

用类装载器来读,因为src目录所有的文件和java类最终都会编译到classes或bin中。示例:

生成一个文件对象:
File file = new File(getClass().getClassLoader().getResource("test.xml").getPath());

直接得到一个输入流:
InputStream in = getClass().getClassLoader().getResourceAsStream("test.xml");

稍要注意的是:当上述代码在静态方法中执行时,getClass()应该为 类.class。

考虑一下ajax