Tag: freemarker

JSP与FreeMarker

JSP是否提供了比FreeMarker更多的灵活性,还是以其他方式? 我的后端涉及Servlets。 在什么情况下使用哪一个?

使用ExecutorService执行异步任务时出现问题

我之前曾问过一个关于ExecutorService和Apache Velocity初始化的问题。 为了快速回顾一下 – 我有一个接受用户请求的Java EE前端,然后对于每个请求,使用ExecutorService(设置为守护进程的SingleThreadedExecutor)启动冗长的工作流。此工作流包含在库中并且可以工作当通过eclipse在独立模式下运行时,正如预期的那样。 当从网站(servlet)调用时,我观察到工作流一直在Velocity Engine初始化的位置(Velocity.init()或ve.init())。 因此我的上述问题。 当没有任何答案/建议有效时,我推断这与Velocity启动并决定转向FreeMarker的方式有关。 现在我看到工作流程也悬挂在FreeMarker实现的完全相同的位置。 这个’place’是邮件构建部分,它根据传递的数据对象的coupel评估模板并返回邮件字符串。调用Freemark’ing类和FreeMark类的类如下 – public class mailBuilder { private static final Logger log = Logger.getLogger( mailBuilder.class ); static String a; static String b; public mailBuilder(CustomDataStructure input) { a = input.getA(); b = input.getB(); } public static String returnMailstring() throws Exception { log.info(“Gathering elements to construct email.”); […]

下拉框 – 从Spring MVC模型/上下文到使用freemarker形成

这应该是非常基本的,但我在网上找不到任何关于它的东西,只是我看起来不能装在一起的点点滴滴…… 我们正在使用带有freemarker的Spring MVC。 现在我想在我的页面中添加一个表单,允许我从预定义列表中选择一个值(需要在后端访问数据库)。 我的控制器: @RequestMapping(value = “/{id}”, method = RequestMethod.GET) public ModelAndView get(@PathVariable Integer id) { // stuff.. ModelAndView mav = new ModelAndView(); mav.addObject(“targetObject”, new TargetObject()); mav.addObject(“options”, Arrays.asList(“a”, “b”, “c”)); mav.setViewName(“someview”); return mav; } 我发现freemarkers spring支持spring.ftl ,似乎我应该使用 ,我试过这样: someView.ftl: 所以targetObject.type由宏似乎自动绑定。 但是如何让我的选项进入freemarker seequence以便宏可以创建选项? 现在我得到: Expected collection or sequence. options evaluated instead to freemarker.template.SimpleScalar on line […]

在java中加载freemarker模板时出现FileNotFoundException

即使模板实际存在于路径中,我在加载freemarker模板时也会收到文件未找到exception。 更新:这是作为Web服务运行的。 它将根据搜索查询将xml返回给客户端。 当我从另一个java程序(来自静态main)调用它时,模板加载成功。 但是当客户端请求xml时,会发生FileNotFoundException。 操作系统:Windows 7文件的绝对路径:C:/ Users / Jay / workspace / WebService / templates / 这是我的代码: private String templatizeQuestion(QuestionResponse qr) throws Exception { SimpleHash context = new SimpleHash(); Configuration config = new Configuration(); StringWriter out = new StringWriter(); Template _template = null; if(condition1) { _template = config.getTemplate(“/templates/fibplain.xml”); } else if(condition2) { _template = […]

在Freemarker中默认转义

在Freemarker模板中,我们可以使用escape指令自动将转义应用于包含块内的所有插值: Hallo, ${name} 有没有办法以编程方式实现类似的效果,定义应用于模板中所有插值的默认转义,包括那些转义外转义? 谢谢。

在FreeMarker模板中处理错误的不同方法有哪些?

如何抑制FreeMarker模板错误? 我在这里看: http : //freemarker.sourceforge.net/docs/pgui_config_errorhandling.html但我不明白如何“TemplateExceptionHandler.IGNORE_HANDLER”。 我正在使用Struts2以及如何显示另一个ftl页面而不是显示堆栈跟踪? class MyTemplateExceptionHandler implements TemplateExceptionHandler { public void handleTemplateException(TemplateException te, Environment env, java.io.Writer out) throws TemplateException { try { out.write(“[ERROR: ” + te.getMessage() + “]”); } catch (IOException e) { throw new TemplateException(“Failed to print error message. Cause: ” + e, env); } } } … cfg.setTemplateExceptionHandler(new MyTemplateExceptionHandler()); 在http://freemarker.sourceforge.net/docs/pgui_config_errorhandling.html找到上面的内容我如何使用它? 最后一行,cfg来自哪里? […]

在Spring应用程序中从FreeMarker获取模板文本

在我的Spring应用程序中,我想使用FreeMarker生成将由我的应用程序发送的电子邮件文本。 生成的文本永远不会返回到视图,因此我不需要配置FreeMarker视图解析器。 文档似乎表明我应该像这样配置一个FreeMarkerConfigurationFactoryBean 一旦我配置了这个bean,我如何实际获得为特定模板生成的文本,以及特定的变量Map。 换句话说,后面是什么代码: String templateName = “email” Map templateVars = new HashMap(); templateVars.put(“firstName”, “john”); templateVars.put(“surname”, “doe”); // Now how do I get the template text? Spring模块似乎提供了Spring和FreeMarker之间的另一种集成,这使得检索模板文本非常明显,但我不想在我的应用程序中添加额外的依赖项,除非绝对必要。 另外,我是否需要在FreeMarkerConfigurationFactoryBean中添加一些额外的配置以确保缓存模板? 干杯,唐

从数据库加载FreeMarker模板

我想将我的FreeMarker模板存储在一个类似于以下内容的数据库表中: template_name | template_content ——————————— hello |Hello ${user} goodbye |So long ${user} 当收到具有特定名称的模板的请求时,这应该导致执行查询,该查询加载相关的模板内容。 然后,应将此模板内容与数据模型(上述示例中的’user’变量的值)一起传递给FreeMarker。 但是, FreeMarker API似乎假设每个模板名称对应于文件系统特定目录中的同名文件。 有什么方法可以轻松地从数据库而不是文件系统加载我的模板? 编辑:我应该提到我希望能够在应用程序运行时向数据库添加模板,因此我不能简单地在启动时将所有模板加载到新的StringTemplateLoader中(如下所示)。 干杯,唐

关闭字符串写入器会不会导致泄漏?

我意识到在java中GC最终会清理对象,但我问的是不关闭你的字符串编写器是不好的做法,目前我这样做: private static String processTemplate(final Template template, final Map root) { StringWriter writer = new StringWriter(); try { template.process(root, writer); } catch (TemplateException e) { logger.error(e.getMessage()); } catch (IOException e) { logger.error(e.getMessage()); } finally { } return writer.toString(); } 我应该关闭编写器并创建一个像这样的新String: String result = “”; … finally { result = writer.toString(); writer.close(); } 这样做更好吗?

在另一个FTL文件中导入一个FTL文件

我在FTL文件中创建了一个DIV,DIV包含表单现在说我有另一个FTL文件,我想在第二个FTL文件中使用第一个FTL的div这是可能的 deepak.ftl From Order By – – – – – – – Select- – – – – – – – Date Leave Type Transaction Type To Leave Type – – – – – – – Select- – – – – – – – ${type.leaveType.description} Leave Transaction – – – – – – – Select- – […]