<dependency>
<groupId>com.hubspot.jinjava</groupId>
<artifactId>jinjava</artifactId>
<version>2.2.0</version>
</dependency>
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;
}
<ui:fragment>
<h2>jinjava</h2>
<h:outputText value="#{settingsWrapper.testJinjava()}" escape="false"/>
<br />---------<br />
</ui:fragment>
{
"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/"
}
]
}
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;
}