将 Struts 1 迁移到 Struts 2 时,Struts 2 中的 FormTag class 缺少 getOnsubmit 方法

While migrating Struts 1 to Struts 2, the FormTag class in Struts 2 is missing a getOnsubmit method

我正在进行 Struts 1 到 Struts 2 的迁移。我们有 Struts 1 个扩展和自定义 org.apache.struts.taglib.html.FormTag 的代码。做了一些搜索,发现 org.apache.struts2.views.jsp.ui.FormTag 等同于 Struts2.

我当前的 Struts 1 代码通过调用 setOnsubmit() 修改 FormTagonsubmit 变量,但它首先执行 getOnsubmit() ] 如下所示。

    if (this.getOnsubmit() == null) {
        this.setOnsubmit(subCmd + subCmdEnd);
    }
    else {
        this.setOnsubmit(subCmd + this.getOnsubmit() + subCmdEnd);
    }

Struts 2 class 有 setOnsubmit(),但没有 getOnsubmit()。我们是否有任何其他选项可用于读取 onsubmit 值?

<s:form> tag belongs to Struts 2 core tag library. So, if you need to use your own tag that extends this one then you should extend org.apache.struts2.views.jsp.ui.FormTag class 并通过覆盖 public 方法并添加其他方法来提供您自己的实现。 onsubmit 字段有一个 protected 修饰符。

但在对 Struts 2 框架进行任何更改之前,请咨询合格专家的建议:您为什么需要这样做?将旧代码携带到新代码? 为 S1 编写的代码与 S2 不兼容。

onsubmit 是 HTML <form> 标签的 HTML 属性,它可以在服务器上以任何其他方式设置,即使用 OGNL,或者在客户端使用 JavaScript.

此外,当从 Struts1 迁移到 Struts2 时,您应该阅读