不使用标签库的 Spring MVC 表单提交中需注意的问题

Spring MVC 有用于表单绑定的标签。但这些标签最终也会生成标准的 HTML 页面。所以,理论上这些标签是不需要的,只要模拟它们生成的 HTML 就可以了。

Spring MVC 的 Form 标签生成的 HTML 很有规律:<form> 元素的 id 属性对应 modelAttribute,input 元素的 name 属性对应 model 中的属性。但是,有一点需要注意。如果 input 类型是 checkbox,那么表单中还需要有一个 hidden input,name 为下划线加上checkbox 的 name。

例如:
<input type="checkbox" name="checkbox" />
<input type="hidden" name="_checkbox" />


否则,在没有任何 checkbox 被选中的状态下,checkbox 对应提交的数组是 null。这样 Spring MVC 无法进行相应的数据绑定。这种情况并不会抛出异常,但是会造成表单的结果无法正常提交。

当然,如果使用 Spring MVC 的标签就没有这些问题了。但我的原则是尽量不去使用标签。例如,Spring MVC 的 Form 标签,不像 JSTL 那样,可以提供很多方便的功能,功能很鸡肋。这样的标签我觉得就不用的好,用多了对 JS 和 HTML 设计多多少少都有干扰。

你可能感兴趣的:(spring,html,mvc,jsp,struts)