在Velocity属性文件中,如何转义comma
和space
之类的特殊字符。
prop.put("file.resource.loader.path",
"C:/Users/Joseph.M/WorkPlace_Struts2/Velocity-ECnet/templates1, "+
"C:/Users/Joseph.M/WorkPlace_Struts2/Velocity-ECnet/comma, templates2");
Velocity.init(prop);
问题是它是否读取
中的模板文件夹1:templates1
但不在文件夹2中:comma, templates2
。
comma_template.vm
内存在 文件 comma, templates2
错误:
Exception in thread "main" org.apache.velocity.exception.ResourceNotFoundException:
Unable to find resource 'comma_template.vm'
答案 0 :(得分:0)
Velocity会将路径分割为,
。它无法识别您有一个名称中包含逗号的文件夹,因此它会看到三条路径:
C:/Users/Joseph.M/WorkPlace_Struts2/Velocity-ECnet/templates1
C:/Users/Joseph.M/WorkPlace_Struts2/Velocity-ECnet/comma
templates2
要解决此问题,您必须重命名该文件夹 - 避免使用空格和逗号。
另一种解决方法可能是使用URLResourceLoader
。然后你可以编码非法字符:
"file:///C:/Users/Joseph.M/WorkPlace_Struts2/Velocity-ECnet/templates1, "+
"file:///C:/Users/Joseph.M/WorkPlace_Struts2/Velocity-ECnet/comma%2c%20templates2"