您的位置:首页 > 编程语言 > Java开发

10Spring标签

2016-07-09 17:00 411 查看
1spring表单标签

spring3提供了JSP tag library,除option,options,form外,其他组件包含path属性。且path为必要属性。且全部包含 HtmlComponentBase的属性。且必须包含在spring form元素内。 

表单控件还包含cssClass, cssErrorClass属性,用于验证返回时处理样式。 组件:

Spring表单标签需要引入的标签库:

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

form

定义spring form。于jsp版本的form:form功能相似。 示例:

<form:form  action="${ctx }/user/test.do" method="post" modelAttribute="user">

</form:form>

注意,已经不在支持command属性,使用modelAttribute属性代替。它把命令/表单对象放在PageContext中,这样form内部的标签就可以访问这个对象了,也就是form内部的标签直接通过属性名就可以得到命令/表单对象的属性值。如果不书写modelAttribute属性则默认命令/表单对象的变量名是"command"。

那么如何设置modelAttribute和commandName的值呢,它们的值应该与传递到页面的命令/表单对象的名称一致。通过path属性取得modelAttribute对象中对应的属性值。

input

输入文本域:

  <form:input id="username" path="username" cssClass="normal" cssErrorClass="error"/>

password

password密码域

 <form:password id="password" path="password" cssClass="normal" cssErrorClass="error"/>

hidden

hidden隐藏域

<form:hidden path="house" />

checkbox标签

这个标签生成一个"checkbox"类型的html"input标签。

例如User中一个Preferences preferences属性,

public class Preferences {

private boolean receiveNewLetter;

private String[] interests;

private String favoriteword;

...

}

我们在Action方法中给User user的preferences属性set值,然后跳转到指定的页面。

public String test(@Valid User user,BindingResult userBindingResult,ModelMap model){

Preferences perf=new Preferences();

perf.setFavoriteword("java");

perf.setInterests(new String[]{"ball"});

perf.setReceiveNewLetter(false);

user.setPreferences(perf);

model.addAttribute("user",user );

...

}

在页面中有三种checkbox标签的使用方法:

<form:form modelAttribute="user">

<form:checkbox path="preferences.receiveNewLetter"/><br>

java:<form:checkbox path="preferences.favoriteword" value="java"/><br/>

ball:<form:checkbox path="preferences.interests" value="ball"/>

</form:form>

第一个用法,如果绑定值是java.lang.Boolean类型,则值为true时,checkbox就标记为选中。

第二种用法,若绑定的值为array或java.util.Collection类型,则当设定的value属性的值出现在绑定的Collection中时,checkbox就选中。

第三种用法,若半顶值为其他类型,则当当设定的value属性的值与其绑定值星等时,checkbox就为选中。

checkboxes标签

这个标签生成多个checkbox类型的标签。传入一个Array,List,Map,并把可用选项包含在"items"属性中,例如:

<form:checkboxes path="preferences.interests" items="${interestList}"/>

这个例子假定了interestList是一个List,List的每一项的值将作为checkbox的value和显示的文本标记。如果是一个Map,则Map的key将作为checkbox的value,Map的value将作为显示的文本标记。也可以使用一个定制的对象,提供"itemValue"属性存放值,"itemLabel"属性存放文本标记。用户选择的checkbox值将绑定到preferences.interests属性中。

radiobutton标签

生成一个radio类型的htmp input标签。例如:

Male:<form:radiobutton path="sex" value="M"/><br/>

Female:<form:radiobutton path="sex" value="F"/><br/>

radiobuttons标签

这个标签生成多个radio类型的htmp input标签,用法和上面的checkboxes标签一样。

select标签

这个标签生成一个HTML select元素。它支持被选中的选项的数据绑定, 也支持使用嵌套的option和options标签。

我们假设有一个User拥有多项专长,${skills}是一个List。

<form:select path="skills" items="${skills}"/>

产生的代码

<select name="skills" multiple="true">

        <option value="Potions">Potions</option>

        <option value="Herbology" selected="selected">Herbology</option>

        <option value="Quidditch">Quidditch</option>

</select>

option标签

这个标签生成一个HTML的"option"。根据绑定的值,它会恰当的设置"selected"属性。

<form:select path="house">

            <form:option value="Gryffindor"/>

            <form:option value="Hufflepuff"/>

            <form:option value="Ravenclaw"/>

            <form:option value="Slytherin"/>

</form:select>

options标签

这个标签生成一个HTML的"option"标签的列表。根据绑定的值,它会恰当的设置"selected"属性

<form:select path="country">

            <form:option value="-" label="--Please Select"/>

            <form:options items="${countryList}" itemValue="code" itemLabel="name"/>

</form:select>

code和name分别是coutryList中Country的属性。

textarea标签

这个标签生成一个HTML的"textarea"。

<form:textarea path="notes" rows="3" cols="20" />

errors标签

这个标签通过一个HTML span标签展现字段的错误。它提供了访问由你的控制器或者与你的控制器关联的任何验证器产生的错误的途径。在表单提交时显示所有与name字段有关的错误

<form:errors path="name"/>

errors标签也支持一些基本的通配符功能。 

path="*":显示所有错误

path="lastName*":显示所有与lastName字段有关的错误

表单元素标签特殊属性 

cssClass

使用该属性指定表单元素CSS样式名,相当于HTML元素的class属性。示例:<form:input path="userName" cssClass="inputStyle"/>。

cssStyle

直接通过该属性指定样式,相当于HTML元素的style属性。示例:

<form:input path="userName" cssStyle="width:100px"/>。

cssErrorClass

cssClass表示表单元素未发生错误时对应的样式,而cssErrorClass表示表单元素发生错误时对应的样式,示例:

diabled,readonly

<form:input path="url" disabled="true"/> 

form:input标签里不能使用其它标签,否则会报错。如:

<form:input path="url" <c:if="${bool=true}">disabled="true"</c:if>/>
http://wenku.baidu.com/view/b7c9a926a5e9856a561260fd.htm#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring