Dorado 7 : 05. 资源定位表达式(SEFC)

在刚才的.properties中我们看到几个变量的定义:

model.root=classpath*:models
view.root=classpath:
...
model.root=file:C:/Users/Administrator/workspace/sample/src/models
view.root=file:C:/Users/Administrator/workspace/sample/src

我们看到同样是model.root的值,有以classpath*作为前缀的,也有一file作为前缀的,因此下面要简单介绍一下dorado中的资源定位表达式.

定义:资源定位表达式通常用来描述一个或一组文件的位置,
它的基本格式为:[协议:]路径
就是协议后面加冒号再加路径,中括号表示其中的内容可省略。

目前支持的协议有:

  • file:表示操作系统的文件系统路径;
  • home:表示doradoHome所在位置的起始路径;
  • classpath:Java资源路径
  • classpath*:Java资源路径,是特别为了从多个jar包中根据通配符批量的提取资源而提供的;
    协议是可以省略的,当不指定具体的协议时Dorado7会自行判断应如何理解用户给出的路径。
    如果路径以"/"开头,Dorado会认为该路径描述是项目web根下的文件。
    如果路径不以"/"开头,Dorado按照classpath协议来处理路径。
    如有需要开发人员可以自行扩展协议。

示例说明

  • file:d:/workspace/test/foo.txt-\- (file:d:/workspace/test/foo.txt--)就是访问d:/workspace/test目录下的foo.txt文件
  • classpath:org/myproject/configure.xml 与 org/myproject/configure.xml 是等效的。
  • /WEB-INF/template.jsp--由于以"/"作为前缀,默认就认为是web根目录下的WEB-INF下查找template.jsp文件file:d:/workspace/test/**/*.xml所有d:/workspace/test目录(包括子文件夹)下的xml文件都会被该表达式命中。
  • classpath:models/*.xml 或 models/*.xml 所有classpath中models下的xml文件都会被该表达式命中。
  • classpath*:models/*.xml 所有jar包和classpath中models下的xml文件都会被该表达式命中。