Veloctity默認(rèn)采用文件加載的方式(FileResourceLoader)來(lái)加載模版文件,這就要求模版文件放在系統(tǒng)目錄下,比如system32下,或者給出絕對(duì)路徑,為了讓其從class目錄下開(kāi)始查找模版文件,需要將其加載方式指定為按類的方式(ClasspathResourceLoader )進(jìn)行加載,因此要改寫(xiě)velocity.properties文件:classpath.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
在eclipse plugin中使用velocity的注意事項(xiàng)
有時(shí)候?yàn)榱朔奖愎芾恚覀儠?huì)將所有jar包統(tǒng)一放在同一個(gè)plugin工程里面,這樣在使用velocity的時(shí)候,定義的模版文件也必須放在jar包所在工程,否則會(huì)出現(xiàn)找不到的資源的異常,這個(gè)主要跟類加載器有關(guān),velocity的getTemplate()方法將使用模版加載器類(如ClasspathResourceLoader)的類加載器來(lái)取得模版文件,也就是ClasspathResourceLoader.getClassLoder().getResourceAsStream("template path"),因?yàn)榧虞d器類和模版文件不在同一個(gè)工程里面,因此二者對(duì)應(yīng)的是兩個(gè)不同的類加載器,找不到資源也就不難理解了。
安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢】