我正在使用 ExtJS 开发一个 Web 应用程序来构建 GUI 并通过 RESTful Web 服务与服务器通信(返回的数据被格式化为 JSON 对象)。
现在我在处理包含 HTML 标签、Javascript 代码的数据时遇到问题;因为当我将这些值设置为 Ext 表单、标签、输入字段时,它们会受到这些语法的影响。
我使用此函数将模型对象中的数据加载到表单中:
form.loadRecord(model);
我找到了转义 HTML 和 JS 的解决方案:使用
field.setValue(Ext.util.Format.htmlDecode(data));
但我认为这对于整个应用程序来说不是一个好的解决方案,因为开发人员必须做很多事情:查看所有输入字段、标签,并将该片段提供给他们。毕竟,这不是构建快速、健壮和可维护的应用程序的好方法。
那么,您能否帮我解决一下,以便它可以在一个地方进行修改,并影响到其他地方。我可以覆盖 AbstractComponent 的 setValue/setLabel 吗?或者我应该在渲染数据之前对数据进行编码?以及如何解码这些数据?(P/S:我在服务器端使用 Grails 框架)非常感谢。