SpringMVC使用JSP处理表单(一)

每一个web应用都需要与表单进行交互,通过将输入字段与表单绑定,可以从用户那里获取数据。SpringMVC通过使用其自定义的JSP表单标签库提供了表单处理的方法。

表单标签库支持使用自定义标签创建视图,并提供了与模型类绑定的功能。所以,通过使用该框架的绑定功能,可以将浏览器提交的HTTP请求中的参数映射到模型。

表单标签提供了许多标签,从输入元素(如复选框、单选框、组合框等)到用来显示信息数据输出元素(比如标签和错误)。

  • form
  • input
  • password
  • hidden
  • select
  • option
  • options
  • radiobutton
  • radiobuttons
  • checkbox
  • checkboxes
  • textarea
  • errors
  • label
  • button

1、配置表单标签库

若想在页面中使用标签库,需要进行一些配置。首先,应该将标签库的定义添加到页面;下面的示例使用mvc作为标签库的前缀:

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="mvc" %>

表单标签库描述文件spring-form.tld位于spring-webmvc子项目META-INF文件夹中。如果将该项目作为一个依赖添加到当前项目中,则可以直接使用该项目。

对于标签库中的每一个标签定义,dynamic-attributes标签都被设置为true。这意味着在标签定义中不存在的特性仍然可以被定义和使用,因为它们将被作为传递特性而进行显示,所以可以在HTML输出看到在标签中定义的特性。

Spring MVC还提供了其他的标签库,以便处理消息的内部初始化,从主题中选择资源等。该标签库描述符文件名spring.tld,同样位于spring-webmvc子项目META-INF文件夹中。

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>

接下来,首先学习输入标签的绑定功能。这也是Spring MVC中最重要的概念之一。

2、理解强大的绑定功能

Spring MVC在视图层模型层之间提供了强大的绑定功能。用户通过视图发送数据,然后这些数据被自动绑定到模型。因为用户的每次交互都是Web上的一个HTTP请求,所以Spring MVC将请求参数与Command对象绑定,其中Command对象是一个POJO/Java Bean,其值由用户的输入填充。Command对象与Form对象和Form-Backing对象是同义的。

在视图层启用绑定的主要元素是标签中的path特性。path指向模型中定义的类属性。


该例中,path指向一个类的name属性——比方说User。用户输入的值将会被自动设备到User类实例的name属性。如果一个类中并没有path所定义的属性,那么Spring MVC将抛出 org.springframework.beans.NotReadablePropertyException,表明该属性不可读或者拥有一个无效的Getter/Setter方法。对大多数标签来说,path是一个必须的属性,因为必须定义它才能让标签工作。errors标签除外,它不需要path特性。

path只是知道特性,但并不知道Command对象本身。

你可能感兴趣的:(SpringMVC使用JSP处理表单(一))