@Override public void render(final View view, final Renderer.Context ctx) throws Exception { String vname = view.name(); try { Map<String, Object> locals = ctx.locals(); if (vname.charAt(0) == '/') { vname = vname.substring(1); } PebbleTemplate template = pebble.getTemplate(vname); Writer writer = new StringWriter(); Map<String, Object> model = new HashMap<>(); // push locals model.putAll(locals); model.putIfAbsent("_vname", vname); // Locale: Locale locale = (Locale) locals.getOrDefault("locale", ctx.locale()); model.putIfAbsent("locale", locale); // put model model.putAll(view.model()); // render and send template.evaluate(writer, model, locale); ctx.type(MediaType.html) .send(writer.toString()); } catch (LoaderException x) { FileNotFoundException fnf = new FileNotFoundException(x.getMessage().replace("Could not find template", "").trim()); fnf.initCause(x); throw fnf; } }
@Override public void render(final View view, final Context ctx) throws Exception { String name = view.name() + suffix; JadeTemplate template = jadeConfiguration.getTemplate(name); Map<String, Object> locals = ctx.locals(); Map<String, Object> hash = new HashMap<>(); hash.put("_vname", view.name()); hash.put("_vpath", name); // Locale: Locale locale = (Locale) locals.getOrDefault("locale", ctx.locale()); hash.put("locale", locale); // locals & model hash.putAll(locals); hash.putAll(view.model()); String output = jadeConfiguration.renderTemplate(template, hash); ctx.type(MediaType.html).send(output); }
@Override public void render(final View view, final Renderer.Context ctx) throws Exception { String name = view.name() + suffix; Template template = template(name, ctx.charset()); Map<String, Object> hash = new HashMap<>(); hash.put("_vname", view.name()); hash.put("_vpath", template.getName()); hash.put("xss", xss); // Locale: Locale locale = (Locale) hash.getOrDefault("locale", ctx.locale()); hash.putIfAbsent("locale", locale); // locals Map<String, Object> locals = ctx.locals(); hash.putAll(locals); // model hash.putAll(view.model()); TemplateModel model = new SimpleHash(hash, new FtlWrapper(freemarker.getObjectWrapper())); // TODO: remove string writer StringWriter writer = new StringWriter(); // Locale: template.setLocale(locale); // output template.process(model, writer); ctx.type(MediaType.html) .send(writer.toString()); }
@Override public void render(final View view, final Renderer.Context ctx) throws Exception { String name = view.name() + suffix; Template template = template(name, ctx.charset()); Map<String, Object> hash = new HashMap<>(); hash.put("_vname", view.name()); hash.put("_vpath", template.getName()); hash.put("xss", xss); // Locale: Locale locale = (Locale) hash.getOrDefault("locale", ctx.locale()); hash.putIfAbsent("locale", locale); // locals Map<String, Object> locals = ctx.locals(); hash.putAll(locals); // model hash.putAll(view.model()); TemplateModel model = new SimpleHash(hash, new FtlWrapper(freemarker.getObjectWrapper())); // TODO: remove string writer StringWriter writer = new StringWriter(); // Locale: template.setLocale(locale); // output template.process(model, writer); ctx.type(MediaType.html) .send(writer.toString()); }
@Override public void render(final View view, final Renderer.Context ctx) throws Exception { String vname = view.name(); try { Map<String, Object> locals = ctx.locals(); if (vname.charAt(0) == '/') { vname = vname.substring(1); } PebbleTemplate template = pebble.getTemplate(vname); Writer writer = new StringWriter(); Map<String, Object> model = new HashMap<>(); // push locals model.putAll(locals); model.putIfAbsent("_vname", vname); // Locale: Locale locale = (Locale) locals.getOrDefault("locale", ctx.locale()); model.putIfAbsent("locale", locale); // put model model.putAll(view.model()); // render and send template.evaluate(writer, model, locale); ctx.type(MediaType.html) .send(writer.toString()); } catch (LoaderException x) { FileNotFoundException fnf = new FileNotFoundException(x.getMessage().replace("Could not find template", "").trim()); fnf.initCause(x); throw fnf; } }
@Override public void render(final View view, final Renderer.Context ctx) throws Exception { String vname = view.name(); TemplateSource source = handlebars.getLoader().sourceAt(vname); Template template = handlebars.compile(source); Map<String, Object> locals = ctx.locals(); locals.putIfAbsent("_vname", vname); locals.putIfAbsent("_vpath", source.filename()); // Locale: Locale locale = (Locale) locals.getOrDefault("locale", ctx.locale()); locals.put("locale", locale); com.github.jknack.handlebars.Context context = com.github.jknack.handlebars.Context .newBuilder(view.model()) // merge request locals (req+sessions locals) .combine(locals) .resolver(resolvers) .build(); // rendering it ctx.type(MediaType.html) .send(template.apply(context)); }
@SuppressWarnings({"rawtypes", "unchecked" }) @Override public void render(final View view, final Context ctx) throws FileNotFoundException, Exception { String vname = view.name(); Map<String, Object> vars = ctx.locals(); vars.putIfAbsent("_vname", vname); // Locale: Locale locale = (Locale) vars.getOrDefault("locale", ctx.locale()); Map model = view.model(); vars.forEach(model::putIfAbsent); model.putIfAbsent("xss", new Thlxss(env)); IContext thlctx = new org.thymeleaf.context.Context(locale, model); String output = this.engine.process(vname, thlctx); ctx.type(MediaType.html) .send(output); }
@Override public void render(final View view, final Renderer.Context ctx) throws Exception { String vname = view.name(); TemplateSource source = handlebars.getLoader().sourceAt(vname); Template template = handlebars.compile(source); Map<String, Object> locals = ctx.locals(); locals.putIfAbsent("_vname", vname); locals.putIfAbsent("_vpath", source.filename()); // Locale: Locale locale = (Locale) locals.getOrDefault("locale", ctx.locale()); locals.put("locale", locale); com.github.jknack.handlebars.Context context = com.github.jknack.handlebars.Context .newBuilder(view.model()) // merge request locals (req+sessions locals) .combine(locals) .resolver(resolvers) .build(); // rendering it ctx.type(MediaType.html) .send(template.apply(context)); }
@SuppressWarnings({"rawtypes", "unchecked" }) @Override public void render(final View view, final Context ctx) throws FileNotFoundException, Exception { String vname = view.name(); Map<String, Object> vars = ctx.locals(); vars.putIfAbsent("_vname", vname); // Locale: Locale locale = (Locale) vars.getOrDefault("locale", ctx.locale()); Map model = view.model(); vars.forEach(model::putIfAbsent); model.putIfAbsent("xss", new Thlxss(env)); IContext thlctx = new org.thymeleaf.context.Context(locale, model); String output = this.engine.process(vname, thlctx); ctx.type(MediaType.html) .send(output); }