0%

19.2.1 form标签

19.2.1 form标签

form标签用于渲染HTML表单。form标签必须利用渲染表单输入字段的其他任意标签。form标签的属性如表19.2所示。
表19.2中的所有标签都是可选的。这个表中没有包含HTML属性,如methodaction

表19.2form标签的属性
属性 描述
acceptCharset 定义服务器接受的字符编码列表
commandName 显示表单对象之模型属性的名称。默认为command
cssClass 定义要应用到被渲染form元素的CSS
cssStyle 定义要应用到被渲染form元素的CSS样式
htmlEscape 接受true或者false,表示被渲染的值是否应该进行HTML转义
modelAttribute 显示form backing object的模型属性名称。默认为command

commandName属性或许是其中最重要的属性,因为它定义了模型属性的名称,其中包含了一个backingobject,其属性将用于填充所生成的表单。如果该属性存在,则必须在返回包含该表单的视图的请求处理方法中添加相应的模型属性。例如,在本章配套的app19a应用程序中,下列form标签是在BookAddForm.jsp中定义的:

1
2
3
4
<!-- commandName用于指定需要的Model对象中的属性名称 -->
<form:form commandName="book" action="book_save" method="post">
...
</form:form>

BookController类中的inputBook方法,是返回BookAddForm.jsp的请求处理方法。下面就是inputBook方法。

1
2
3
4
5
6
7
8
@RequestMapping(value = "/book_input")
public String inputBook(Model model) {
...
//设置一个book属性到Modle之中
model.addAttribute("book", new Book());
//返回视图名称,也就是BookAddForm.jsp
return "BookAddForm";
}

此处用book属性创建了一个Book对象,并添加到Model。如果没有Model属性,BookAddForm.jsp页面就会抛出异常,因为form标签无法找到在其commandName属性中指定的from backing object
此外,一般来说仍然需要使用actionmethod属性。这两个属性都是HTML属性,因此不在表19.2之列。

原文链接: 19.2.1 form标签