如何在 Struts2 中为 FreeMarker 结果启用枚举指令?

发布于 2024-10-19 01:20:34 字数 446 浏览 3 评论 0原文

假设我有一个 Enum 类“sample.enums.Enum”,并且我有一个大部分具有默认配置的 Struts2 应用程序。

如果我正确配置我的BeanWrappers,这应该可以工作。

${enums["java.math.RoundingMode"].UP}

它不起作用。如何配置我的 Struts2 FreeMarker 配置以允许 enums 指令。

IE

root.put("enums", BeansWrapper.getDefaultInstance().getEnumModels()); 

Say I have an Enum class "sample.enums.Enum", and I have a Struts2 applications with default configuration for the most part.

If I configure my BeanWrappers correctly, this should work.

${enums["java.math.RoundingMode"].UP}

It does not work. How do I configure my Struts2 FreeMarker configuration to allow for the enums directive.

i.e.

root.put("enums", BeansWrapper.getDefaultInstance().getEnumModels()); 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

又怨 2024-10-26 01:20:34

好吧,这并不难,只需扩展 FreemarkerManager 并覆盖

@Override
public SimpleHash buildTemplateModel(ValueStack stack, Object action, ServletContext ervletContext, HttpServletRequest request, HttpServletResponse response, ObjectWrapper wrapper)

该方法,在模型上设置枚举哈希模型即可。然后设置一个struts属性,

<constant name="struts.freemarker.manager.classname" value="your.freemarker.ConfigClass">

Ok its not difficult, Just extend FreemarkerManager and override

@Override
public SimpleHash buildTemplateModel(ValueStack stack, Object action, ServletContext ervletContext, HttpServletRequest request, HttpServletResponse response, ObjectWrapper wrapper)

In that method, set the enums hash model on the model. Then set a struts property,

<constant name="struts.freemarker.manager.classname" value="your.freemarker.ConfigClass">
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文