2012-04-06 9 views
0

Ich schrieb eine Beispiel-Java-Datei, die sich im Ordner/src befindet.Wie kann das StringTemplate-Importverzeichnis verwendet werden?

public class Main { 
    public static void main(String[] args){ 
    STGroupFile StgFile=new STGroupFile("template.stg"); 
    StgFile.delimiterStartChar = '$'; 
    StgFile.delimiterStopChar = '$'; 
    ST webtemp=StgFile.getInstanceOf("test"); 
    webtemp.add("x","whyyy"); 
    System.out.println(webtemp.render()); 
    } 
} 

Auch habe ich die Datei template.stg, die auch in/src-Ordner befindet

import "headers/header.stg" 
test(x) ::= << $included(x)$ >> 

und die Datei header.stg, die in/src/Header-Ordner befindet.

included(x) ::= << headers[$x$] >> 

Das Ergebnis ist offensichtlich

headers[whyyy] 

aber wenn ich versuche ganze Header Verzeichnis importieren die template.stg so machen:

import "headers" 
    test(x) ::= << $included(x)$ >> 
  • die mitgelieferte Subtemplate kann nicht verwendet werden ...

Die von mir verwendete Version von StringTemplate ist die neueste Version 4.0.5 und nach dem Link http://www.antlr.org/wiki/display/ST4/Differences+between+v3+and+v4 ist das Importieren eines Verzeichnisses erlaubt .. Ich habe sogar/vor und/oder nach/- relative/absolute Pfade verwendet und es funktioniert nicht: (Irgendwelche Hilfe bitte? Danke :)

Antwort

3

Haben Sie versucht $header/included(x)$?

+0

nein - Ich werde es versuchen - aber später - da ich StringTemplate für eine Weile aus meinem Projekt entfernt habe. Vielen Dank –

+0

Das hat einige Jahre gedauert - tut mir leid - ich bin mit verschiedenen Technologien weiter gegangen, wie du dir vorstellen kannst, aber diese Antwort hat damals funktioniert :) –