Skip to content

Instantly share code, notes, and snippets.

@zaxebo1
Forked from raprasad/jinjava.md
Created July 14, 2020 02:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zaxebo1/c446032f36287d771eb56faa2dcc8427 to your computer and use it in GitHub Desktop.
Save zaxebo1/c446032f36287d771eb56faa2dcc8427 to your computer and use it in GitHub Desktop.
jinjava example
  • pom.xml
 <dependency>
               <groupId>com.hubspot.jinjava</groupId>
               <artifactId>jinjava</artifactId>
               <version>2.2.0</version>
             </dependency>
  • in a java file
 public String testJinjava(){
        
        Jinjava jinjava = new Jinjava();
        
        // -----------------------------
        // Convert the JSON Data to a Map
        // -----------------------------    
        String data = this.get(":GuidesData");
        Gson gson = new Gson();
        java.lang.reflect.Type type = new TypeToken<Map<String, Object>>(){}.getType();
        Map<String, Object> map = gson.fromJson(data, type);   

        
        //Map<String, Object> context = new HashMap<>();
        //context.put("name", "rp");

        String template = "<div>Hello, {{ name }}! {% for g in guide_links %}{{ g.name }} - {{ g.link }} <br />{% endfor %}</div>";
        //template = readLocalResource("navbar/guides2.html");
        //if (template == null){
        //    return "Can't load template";
        //}     
        //Resources.toString(Resources.getResource("my-template.html"), Charsets.UTF_8);
        
        String renderedTemplate = jinjava.render(template, map);

        return renderedTemplate;
    }
  • in a template (.xhtml)
   <ui:fragment>
     <h2>jinjava</h2>
         <h:outputText value="#{settingsWrapper.testJinjava()}" escape="false"/>
         <br />---------<br />
    </ui:fragment>
  • sample data
   {
    "guide_links": [
        {
            "name": "Ye User Guide",
            "link": "http://guides.dataverse.org/en/latest/user/"
        },
        {
            "name": "Developer Guide",
            "link": "http://guides.dataverse.org/en/latest/developers/"
        },
        {
            "name": "Installation Guide",
            "link": "http://guides.dataverse.org/en/latest/installation/"
        },
        {
            "name": "The Old API Guide",
            "link": "http://guides.dataverse.org/en/latest/api/"
        }

    ]
}

read local file

     private static String readLocalResource(String path) {
        
        logger.fine(String.format("Data Frame Service: readLocalResource: reading local path \"%s\"", path));

        // Get stream
        InputStream resourceStream = SettingsWrapper.class.getResourceAsStream(path);
        String resourceAsString = "";

        // Try opening a buffered reader stream
        try {
            BufferedReader rd = new BufferedReader(new InputStreamReader(resourceStream, "UTF-8"));

            String line = null;
            while ((line = rd.readLine()) != null) {
                resourceAsString = resourceAsString.concat(line + "\n");
            }
            resourceStream.close();
        } catch (IOException ex) {
            logger.warning(String.format("SettingsWrapper: (readLocalResource) resource stream from path \"%s\" was invalid", path));
            return null;
        }

        // Return string
        return resourceAsString;
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment