Скорость Apache - getTemplate (). На самом деле это позволяет передать имя файла .vm, могу ли я передать здесь строку / объект? есть ли какой-либо метод для передачи строки / объекта?
Скорость Apache - getTemplate (). как передать строку / объект вместо файла .VM
comment
Возможный дубликат Как использовать строку в качестве шаблона скорости?
- person Toparvion   schedule 18.04.2017
Ответы (3)
Это пример кода, который у меня работает.
Velocity version: 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());
}
person
George Siggouroglou
schedule
03.03.2016
можем ли мы использовать загрузчик ресурсов класса вместе с загрузчиком ресурсов String?
- person Asad Shakeel; 04.05.2020
Я часами искал один и тот же вопрос и наконец нашел код модульного теста, который показывает все необходимое.
person
Brian Lowe
schedule
21.02.2012
Испытал все тесты, и все не удалось с Velocity 1.7!
- person Jurica Krizanic; 18.09.2013
загляните в StringResourceLoader
person
Nathan Bubna
schedule
29.06.2011
Я нашел один пример для StringResourceLoader. velocity.apache.org/ движок / devel / apidocs / org / apache / velocity /. Но у нас есть информация о нашем шаблоне в строковом формате. нам нужно передать строку вместо .vm. что мне делать для этого сценария. пожалуйста, если есть какой-либо пример кода.
- person vasantharajan; 01.07.2011
StringResourceLoader позволяет вам напрямую добавлять шаблоны в ваш репозиторий, а затем извлекать их, как любой другой шаблон. StringResourceLoader.getRepository (). PutStringResource (myTemplateName, myTemplateString);
- person Nathan Bubna; 01.07.2011
StringResourceLoader.getRepository()
возвращает ноль. Есть ли какое-нибудь свойство для установки?
- person Asad Shakeel; 04.05.2020
Был долгое время. Вероятно, следует настроить VelocityEngine для его использования и сначала инициализировать движок такими свойствами: resource.loader = string string.resource.loader.class = org.apache.velocity.runtime.resource.loader.StringResourceLoader.
- person Nathan Bubna; 05.05.2020