如何实现自定义模板引擎的弹簧支持?

时间:2015-01-04 11:28:14

标签: spring spring-mvc template-engine

我决定在Spring MVC框架中使用自定义模板引擎。

我的模板在java中实现,并具有渲染为String的方法:

public String render(Map context);

如何配置spring以使它们在Controller bean中可用作视图,例如:

ModelAndView modelAndView = new ModelAndView("activationPage"); // - view name which will actually be java class name reference.
modelAndView.addObject("validationResult", validationResult);
return modelAndView;

模型将作为连接spring和我的模板引擎的代码中的上下文传递。

2 个答案:

答案 0 :(得分:3)

您需要实现org.springframework.web.servlet.View(这应该很简单,您已经拥有与其所需的render方法非常相似的东西),以及映射视图名称的org.springframework.web.servlet.ViewResolver (例如" activationPage")在您的自定义视图上。

一旦你有了这个,把你的ViewResolver类的bean放到上下文中,并且(除非你做了其他妨碍其他事情的东西)它应该自动被Spring选中并且应该工作。如果你已经有其他的ViewResolvers,他们可能会争论谁来解决视图,在这种情况下问一个新的问题。

答案 1 :(得分:1)

你好我是Rythm template engine的作者,大约半年前我和你有同样的要求。我所做的是阅读SpringFramework的Velocity和Freemarker视图的源代码。然后按照他们的方法为spring创建Rythm view

很容易理解已经存在的东西,它使您的实施质量高,可以遵循官方模块。祝你好运: - )