如何实现 spring 对自定义模板引擎的支持?
how to implement spring support for custom template engine?
我决定使用带有 Spring MVC 框架的自定义模板引擎。
我的模板在 java 中实现并具有渲染成字符串的方法:
public String render(Map context);
如何配置 spring 以使其在控制器 bean 中作为视图可用,例如:
ModelAndView modelAndView = new ModelAndView("activationPage"); // - view name which will actually be java class name reference.
modelAndView.addObject("validationResult", validationResult);
return modelAndView;
模型将在连接 spring 和我的模板引擎的代码中作为上下文传递。
您需要实现 org.springframework.web.servlet.View
(这应该很容易,您已经拥有与它需要的 render
方法非常相似的东西),以及 org.springframework.web.servlet.ViewResolver
,它映射在您的自定义视图上查看名称(例如 "activationPage")。
一旦你有了它,将你的 ViewResolver
class 的一个 bean 放到上下文中,并且(除非你做了其他阻碍)它应该会自动被拾取通过 Spring 并且应该可以正常工作。如果您已经有其他 ViewResolver 在那里,他们可能会为谁来解决视图而争吵,在这种情况下提出一个新问题。
您好,我是 Rythm template engine, about half year ago I am having the same requirement like you. What I did is to read the source code of Velocity and Freemarker view of SpringFramework. And then create the Rythm view 的作者,spring 遵循他们的方法。
遵循已经存在的东西很容易,并且遵循官方模块使您的实现质量更高。祝你好运:-)
我决定使用带有 Spring MVC 框架的自定义模板引擎。
我的模板在 java 中实现并具有渲染成字符串的方法:
public String render(Map context);
如何配置 spring 以使其在控制器 bean 中作为视图可用,例如:
ModelAndView modelAndView = new ModelAndView("activationPage"); // - view name which will actually be java class name reference.
modelAndView.addObject("validationResult", validationResult);
return modelAndView;
模型将在连接 spring 和我的模板引擎的代码中作为上下文传递。
您需要实现 org.springframework.web.servlet.View
(这应该很容易,您已经拥有与它需要的 render
方法非常相似的东西),以及 org.springframework.web.servlet.ViewResolver
,它映射在您的自定义视图上查看名称(例如 "activationPage")。
一旦你有了它,将你的 ViewResolver
class 的一个 bean 放到上下文中,并且(除非你做了其他阻碍)它应该会自动被拾取通过 Spring 并且应该可以正常工作。如果您已经有其他 ViewResolver 在那里,他们可能会为谁来解决视图而争吵,在这种情况下提出一个新问题。
您好,我是 Rythm template engine, about half year ago I am having the same requirement like you. What I did is to read the source code of Velocity and Freemarker view of SpringFramework. And then create the Rythm view 的作者,spring 遵循他们的方法。
遵循已经存在的东西很容易,并且遵循官方模块使您的实现质量更高。祝你好运:-)