Freemarker 和 Struts 2 错误处理集成

Posted

技术标签:

【中文标题】Freemarker 和 Struts 2 错误处理集成【英文标题】:Freemarker and Struts 2 error handling integration 【发布时间】:2016-03-18 01:03:04 【问题描述】:

我有一个项目,其中 Struts2 提供 MVC 层并使用 FreeMarker 模板更新网页。一些 FreeMarker 模板返回部分视图 - 例如 addNewRow.ftl 它返回一个表格行。 使用 addActionError 方法验证操作并将错误消息添加到网页。 在网页仅接收部分视图的情况下,由于页面中缺少错误信息,因此不会显示验证消息。 在这种情况下,如何检索和显示操作中发生的验证错误?

【问题讨论】:

【参考方案1】:

仅仅因为您选择根据用户操作重绘 UI 的一部分并不意味着必须在此处显示所有信息。使用 jQuery,您可以轻松获取错误信息并将其插入页面上任何现有的 DOM 节点,即使是那些不属于您刚刚呈现的页面部分的节点。

另一种解决方案是重绘 UI 的较大部分,而不是包含错误显示容器,并在重绘期间简单地序列化操作消息。

或者您可以查看您的重绘回调,看看它是否可以拆分为多个调用,每个调用可以独立处理页面重绘的部分,例如:添加表格行并呈现错误消息。

【讨论】:

你能澄清第一个建议吗?我可以看到它在 Post/Redirect/Get 场景中工作,您可以在其中专门返回错误信息。在返回数据的情况下 - 我认为您的建议是在单独的 div 元素中返回数据和错误然后使用 jQuery 分别提取它们是否正确?

以上是关于Freemarker 和 Struts 2 错误处理集成的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 + Freemarker + DisplayTag:如何使其工作

struts 集成freemarker 无法定义局部变量

漏洞分析 | Apache Struts2 Freemarker标签远程执行漏洞分析和复现(S2-053)

测试 Struts 2 动作,结果类型 freemarker

Struts2 freemarker 配置

使用 Struts+Freemarker 更改表单的输出