使用 Spring 的表单标签
通过SpringMVC的表单标签可以实现将模型数据中的属性和HTML表单元素相绑定,以实现表单数据更便捷编辑和表单值回显
form标签
- 一般情况下,通过GET请求获取表单页面,而通过POST请求提交表单页面,因此获取表单页面和提交表单页面的URL是相同的。只要满足该最佳条件的契约,**form:form**标签就无需通过action属性指定表单提交的URL。
- 可以通过modelAttribute属性指定绑定的模型数据,若没有指定该属性,则默认从request域对象中读取command的表单bean,如果概述性质也不存在,则会发生错误。
表单标签
-
SpringMVC提供了多个表单组件标签,如form:input/、form:select/等,泳衣绑定表单字段的属性值,他们的共有属性如下:
-path:表单字段,对应html元素的name属性,支持级联属性。
-htmlEscape:是否对表单值的HTML特殊字符进行转换,默认值为true
-cssClass:表单组件对应的CSS样式类名
-cssErrorClass:表单组件的数据存在错误时,采取的css样式。 -
form:input、form:password、form:hidden、form:textarea:对应 HTML 表单的 text、password、hidden、textarea标签。
-
form:radiobutton:单选框组件标签,当表单 bean 对应的属性值和 value 值相等时,单选框被选中。
-
form:radiobuttons:单选框组标签,用于构造多个单选框:
-items:可以是一个List、String[]或Map
-itemValue:指定radio的value值。可以是集合中bean的一个属性值。
-itemLabel:指定radio的label值
-delimiter:多个单选框可以通过delimiter指定分割符。 -
form:checkbox:复选框组件。用于构造单个复选框。
-
form:checkboxs:用于构造多个复选框。使用方式同form:radiobuttons 标签。
-
form:select:用于构造下拉框组件。使用方式同form:radiobuttons 标签。
-
form:option:下拉框选项组件标签。使用方式同form:radiobuttons 标签。
-
form:errors:显示表单组件或数据校验所对应的错误
- <form:errors path= “ ” /> :显示表单所有的错误。
-<form:errors path= “ user” /> :显示所有以 user 为前缀的属性对应的错误。
-<form:errors path= “ username” /> :显示特定表单对象属性的错误。
处理静态资源
- 优雅的REST风格的资源UTL不希望带.html或.do等后缀。
- 获奖DispatchServlet请求映射配置为/,则SpringMVC将捕获WEB容器的所有请求,包括静态资源的请求,SpringMVC会将他们当成一个普通的请企业处理,因找不到对应处理器将导致错误。
- 可以在SpringMVC配置文件中配置mvc:default-servlet-handler/的方式解决静态资源的问题:
-mvc:default-servlet-handler/将在SpringMVC上下文中定义一个DefaultServletHttpRequestHandler,它会对进入DispatcherServlet的请求进行筛查,如果发现是没有经过映射的请求,就将该请求交由WEB应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。
-一般WEB应用服务器默认的Servlet的名称都是default。若使用的WEB服务器的默认Servlet名称不是default,则需要通过default-servlet-name属性显示指定。