【发布时间】:2016-08-30 00:55:15
【问题描述】:
我有以下<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 标记为错误。错误信息是:
此时,元素
input上不允许使用属性value。
当类型为图像时,value 显然是不允许的属性。如何防止 Struts2 生成 value 属性?
【问题讨论】:
-
这里是 W3C HTML 检查器(验证器)的维护者。这不是 HTML 检查器中的错误。检查器符合规范,在这种情况下不允许
value属性。如果您转到 html.spec.whatwg.org/multipage/… 并向下滚动到 Bookkeeping details 部分,您会看到它说:“必须省略元素的 value 属性。”。 -
它在 HTML 4 中是有效的,因为 DTD 不能仅在另一个属性具有特定值时才禁止一个属性。 HTML 5 不使用 DTD,因此可以将其标记为无效。
-
@RomanC — 问题是询问如何防止 struts2 在图像输入上生成值属性。这完全是关于 struts2 的。
-
@RomanC — 问题非常清楚。 “验证器是否正确,如果是,我该如何修复我的 struts2 代码以修复 HTML?”。 cmets 已经确定验证器 是 正确的,所以它只是归结为“我该如何解决它?”。关于验证器的部分只是一个合理的检查,以确保问题不是基于错误的前提。
-
由于@sideshowbarker 显示验证器是正确的,我确实需要知道如何防止
Struts2生成value属性。我按照@Aleksandr 的建议创建了一个 jira。
标签: html struts2 w3c-validation html-input struts-tags