Struts2 生成 value="Submit",W3C 标记验证器认为这是一个错误

Struts2 generates value="Submit" which the W3C markup validator says is an error

我有以下 <s:submit> 标签代码:

<s:submit action="shipment_deleteShipperFromChosenShipperViewList" 
          type="image" src="/llr/theme/delete.gif"
          onclick="clearDirtyFlag();deleteShipperFromChosenShipperViewList('%{organizationInfo.orgId}');"
          tabindex="16" />

生成以下 HTML:

<input type="image" 
       alt="Submit" 
       src="/llr/theme/delete.gif" 
       id="shipment_shipment_deleteShipperFromChosenShipperViewList" 
       name="action:shipment_deleteShipperFromChosenShipperViewList" 
       value="Submit"
       tabindex="16"
       onclick="clearDirtyFlag();deleteShipperFromChosenShipperViewList('1');"/>

W3C 标记验证器 (W3C) 将 HTML 标记为错误。错误信息是:

Attributevalue not allowed on element input at this point.

显然,当类型为图像时,value 不是允许的属性。如何防止 Struts2 生成 value 属性?

在修复版本发布之前,您有几个选择。

  • 使用纯 HTML 输入标签 <input type="image" ...> 而不是 <s:submit>。如果您使用的不是 simple 主题,那么您还应该将 <input> 放入一些 HTML 标签中。

  • 将 struts2-core jar 中的 submit.ftl 复制到您的项目中并进行修改。

  • 忽略这个 W3C 标记验证器错误,可能还有更糟糕的事情需要担心。 :)