1

嗨,我们最近将 Struts2 从 Struts 2.5.22 升级到 2.5.27。在我们的应用程序中,我们使用的是 Struts Jquery Grid。我们正在使用 struts2-jquery-grid-plugin-4.0.3.jar 库。

我们的应用程序需要为网格 ID 分配一个动态值,即 bean 属性。我的代码片段如下:

<sjg:grid id="%{#tabGrid.gridId}" caption="%{#tabGrid.gridCaption}" gridModel="%#tabGrid.gridData}" href="%{gridUrl}"-------->

在升级之前,上面的代码是有效的。但是在升级之后,我们无法分配网格 id bean 属性。但是我们可以分配网格标题 bean 属性,如上面的代码片段所示。只有当我们分配 id bean 属性时,我的代码才会中断。

我试图通过分配属性bean的网格类值而不是id来解决问题。但是这种更改会影响我的应用程序中的大量代码更改。请提出可能的原因和可能的解决方案。

4

1 回答 1

0

从 Struts 2.5.26 开始,您不再可以使用%{}公共属性在 Struts 标记中强制进行 OGNL 评估,这会导致 OGNL 表达式的双重评估。此夹具记录在S2-061中。

如果开发人员使用%{...}语法应用强制 OGNL 评估,则标签的某些属性可能会执行双重评估。对不受信任的用户输入使用强制 OGNL 评估可能会导致远程代码执行和安全性下降。

于 2021-12-04T16:27:48.837 回答