我正在编写一个MVC portlet框架,我计划在我的视图中使用Rythm。我想将各种参数传递给视图,并想知道是否有办法在运行时使用Java为视图声明这些参数?我知道我可以使用@args标签在视图中声明参数,并且我可以从Java添加自定义标签,但我想做类似于ASP.NET MVC如何传递帮助程序类的东西(HtmlHelper @Html,UrlHelper @Url,对象@Model)到视图。
答案 0 :(得分:0)
如果您计划传递给视图的所有参数都是全局的(即它们应用于所有渲染会话和所有模板),那么您应将它们视为隐式变量,这意味着模板作者不需要声明它们但他们可以自由使用它们。隐式变量的示例是会话,请求,上下文等。
关于如何声明隐式变量,可以参考:
有关如何使用隐式变量配置Rythm引擎,请参阅
关于如何为每个渲染会话将隐含变量注入rythm引擎,您还可以参考:
对于像HtmlHelper
这样的事情,我的建议是提供可重用的rythm模板作为标签而不是Java对象。因为你需要渲染html片段,所以使用rythm是一种自然的方式,而不是让Java代码输出内容。
对于像UrlHelper
这样的东西,如果它完全是关于字符串操作的,你可以直接使用Java代码,但公共静态方法可能比辅助实例更合适