Apache的Velocity - getTemplate()。其實它允許傳遞.vm文件名,我可以在這裏傳遞字符串/對象嗎?有什麼方法可以傳遞字符串/對象嗎?Apache的Velocity - getTemplate()。如何傳遞字符串/對象而不是.VM文件
回答
看看我搜索了在同一個問題小時StringResourceLoader
我發現一個StringResourceLoader的例子。 http://velocity.apache.org/engine/devel/apidocs/org/apache/velocity/runtime/resource/loader/StringResourceLoader.html。但是我們正在將字符串formmate中的模板信息。我們需要傳遞字符串而不是.vm。我應該爲這種情況做些什麼。請如果有任何示例代碼。 – vasantharajan
StringResourceLoader允許您直接將模板添加到存儲庫,然後像其他任何模板一樣檢索它們。 StringResourceLoader.getRepository()。putStringResource(myTemplateName,myTemplateString); –
,終於找到了單元測試代碼,顯示一切必要的。
嘗試過所有測試,並且所有測試都失敗了,速度爲1.7! –
這是爲我工作的一個示例代碼。
速度版本:1.7
我使用log4j作爲記錄器。
import org.apache.log4j.Logger;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.StringResourceLoader;
import org.apache.velocity.runtime.resource.util.StringResourceRepository;
private static void velocityWithStringTemplateExample() {
// Initialize the engine.
VelocityEngine engine = new VelocityEngine();
engine.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.Log4JLogChute");
engine.setProperty("runtime.log.logsystem.log4j.logger", LOGGER.getName());
engine.setProperty(Velocity.RESOURCE_LOADER, "string");
engine.addProperty("string.resource.loader.class", StringResourceLoader.class.getName());
engine.addProperty("string.resource.loader.repository.static", "false");
// engine.addProperty("string.resource.loader.modificationCheckInterval", "1");
engine.init();
// Initialize my template repository. You can replace the "Hello $w" with your String.
StringResourceRepository repo = (StringResourceRepository) engine.getApplicationAttribute(StringResourceLoader.REPOSITORY_NAME_DEFAULT);
repo.putStringResource("woogie2", "Hello $w");
// Set parameters for my template.
VelocityContext context = new VelocityContext();
context.put("w", "world!");
// Get and merge the template with my parameters.
Template template = engine.getTemplate("woogie2");
StringWriter writer = new StringWriter();
template.merge(context, writer);
// Show the result.
System.out.println(writer.toString());
}
- 1. Apache的速度 - 是getTemplate()調用需要一個字符串不是文件名?
- 2. Postgres JSON函數傳遞的字符串,而不是對象
- 3. 隔離作用域'='傳遞字符串而不是對象
- 4. 如何通過java腳本將參數從另一個vm文件(velocity)傳遞給vm文件(Velocity)?
- 5. 如何在JS中的對象文字中傳遞字符串?
- 6. JSCH - 傳遞私鑰字符串而不是文件路徑
- 7. 如何從apache velocity * .vm文件調用javascript函數?
- 8. Apache Velocity ::如何從.vm文件獲取整個HTML
- 9. Apache配置添加對象而不是字符串
- 10. 帶有文件對象而不是字符串的SafeConfigParser.read()
- 11. PyQt4.QtCore.QVariant對象而不是字符串?
- 12. 顯示對象而不是字符串
- 13. 如何將字符串傳遞給批量插入而不是文件?
- 14. 如何在android sqlite中傳遞字符串而不是字符串參數
- 15. 將null傳遞給喜歡使用字符串的方法,而不是對象
- 16. Grails配置文件返回空對象,而不是字符串
- 17. 使用Apache HTTP客戶端而不將字符串作爲字符串傳遞?
- 18. 使用java檢查Apache Velocity(.vm文件)中的文本
- 19. 如何使symfony2請求對象將UploadedFile對象傳遞給實體類而不是字符串
- 20. 傳遞一個列名作爲對象,而不是一個字符串data.table
- 21. 如何使用只傳遞一個字符串[],而不是一個對象的jQuery.tmpl()插件
- 22. 將字符串傳遞到對象javascript
- 23. 將對象字符串的值傳遞給字符串
- 24. Laravel郵件:傳遞字符串而不是視圖
- 25. 是否可以在不提供輸入文件的情況下調用xsl Apache FOP,而是傳遞字符串
- 26. 笨傳遞數組,而不是對象
- 27. Apache Velocity - 根據總的Foreach計數分析VM文件
- 28. 如何將GtkComboBox用於對象,而不是字符串?
- 29. AngularJS如何返回字符串而不是Json對象
- 30. 如何將字符串傳遞給Python中的對象類
的可能的複製[如何使用String作爲Velocity模板?](http://stackoverflow.com/questions/1432468/how-to-use-string-as-velocity-template) – Toparvion