spring标签使用Word文件下载.docx
- 文档编号:20698257
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:14
- 大小:20.09KB
spring标签使用Word文件下载.docx
《spring标签使用Word文件下载.docx》由会员分享,可在线阅读,更多相关《spring标签使用Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
这个库中的其他标签都是form标签的嵌套标签。
假设我们有一个叫做User的领域对象,它是一个JavaBean,拥有诸如firstName和lastName这样的属性。
我们将把它当作返回form.jsp的表单控制器的表单支持对象(formbackingobject)。
下面是一个form.jsp可能的样子的例子:
form:
form>
<
table>
tr>
td>
FirstName:
/td>
inputpath="
firstName"
/>
/tr>
LastName:
lastName"
tdcolspan="
2"
>
inputtype="
submit"
value="
SaveChanges"
/table>
/form:
上面firstName和lastName的值是从由页面控制器放置在PageContext中的命令对象中得到的。
请继续读下去来看几个关于如何使用form标签的内部标签的例子。
生成的HTML看起来就是一个标准的form:
formmethod="
POST"
inputname="
type="
text"
Harry"
/>
Potter"
/form>
上面的JSP有一个预设前提,就是表单支持对象(formbacking)的变量名是“command”。
如果你将这个表单支持对象用其他名称加以定义(这可算是一种最佳实践),你就可以将这个命名变量绑定到表单上,如下例所示:
formcommandName="
user"
13.9.3.
input标签
这个标签生成一个“text”类型的HTML“input”标签。
关于这个标签的示例,请见第
13.9.2
节“form标签”。
13.9.4.
checkbox标签
这个标签生成一个“checkbox”类型的HTML“input”标签。
让我们假设我们的User有比如新闻订阅和其他一组业余爱好这样的偏好。
下面就是一个Preferences类的例子:
publicclassPreferences{
privatebooleanreceiveNewsletter;
privateString[]interests;
privateStringfavouriteWord;
publicbooleanisReceiveNewsletter(){
returnreceiveNewsletter;
}
publicvoidsetReceiveNewsletter(booleanreceiveNewsletter){
this.receiveNewsletter=receiveNewsletter;
publicString[]getInterests(){
returninterests;
publicvoidsetInterests(String[]interests){
this.interests=interests;
publicStringgetFavouriteWord(){
returnfavouriteWord;
publicvoidsetFavouriteWord(StringfavouriteWord){
this.favouriteWord=favouriteWord;
}
form.jsp如下:
Subscribetonewsletter?
:
%--Approach1:
Propertyisoftypejava.lang.Boolean--%>
checkboxpath="
preferences.receiveNewsletter"
Interests:
%--Approach2:
Propertyisofanarrayoroftypejava.util.Collection--%>
Quidditch:
preferences.interests"
Quidditch"
Herbology:
Herbology"
DefenceAgainsttheDarkArts:
DefenceAgainsttheDarkArts"
FavouriteWord:
%--Approach3:
Propertyisoftypejava.lang.Object--%>
Magic:
preferences.favouriteWord"
Magic"
有三种checkbox标签的使用方法满足你对checkbox的需求。
∙第一种用法:
若绑定值是java.lang.Boolean类型,则值为true时,input(checkbox)就标记为选中。
其value属性对应于setValue(Object)值的属性的解析值。
∙第二种用法:
若绑定值是array或java.util.Collection类型,则当设定的setValue(Object)值出现在绑定的Collection中时,input(checkbox)就标记为选中。
∙第三种用法:
若绑定值为其他类型,则当设定的setValue(Object)与其绑定值相等时,input(checkbox)才标记为选中。
注意,不管使用哪种方法,生成的HTML结构都是相同的。
下面是包含一些checkbox的HTML片段:
spring.framework.eckbox"
hidden"
1"
name="
_preferences.interests"
也许没有注意到的是在每个checkbox背后还隐藏了其他字段(field)。
当一个HTML页面中的checkbox没有被选中时,它的值不会在表单提交时作为HTTP请求参数的一部分发送到服务器端,因此我们需要给这个HTML的奇怪动作想出一个变通方案,来让Spring的表单数据绑定可以工作。
checkbox标签遵循了Spring现有的惯例,就是对于每个checkbox都包含了一个下划线("
_"
),再跟上一个隐藏参数。
这样一来,就相当于告诉Spring“这个checkbox在表单中是可见的,并且希望表单数据将要被绑定到的对象能够反映出任意的checkbox的状态”。
13.9.5.
checkboxes标签
这个标签生成多个“checkbox”类型的HTML“input”标签。
这一节建立在上一节checkbox标签的例子之上。
有时倾向于并不在JSP页面中列出全部可能的业余爱好,而是想在运行时提供一个可用选项的清单,并把它传递给相应标签。
这就是checkboxes标签的目标。
传入一个Array、List,或者Map,并把可用选项包含在“items”属性中。
典型的情况是,这个绑定的属性是一个集合,这样它才能持有用户选择的多个值。
下面是使用了这个标签的JSP的一个例子:
%--Propertyisofanarrayoroftypejava.util.Collection--%>
checkboxespath="
items="
${interestList}"
这个例子假定了“interestList”是一个List,作为模型属性它包含了用于被选择的字符串的值。
而在使用一个Map的情况下,map条目的键被用作值,map条目的值被用作显示的文本标记。
也可以使用一个定制的对象,提供“itemValue”属性存放值,“itemLabel”属性存放文本标记。
13.9.6.
radiobutton标签
这个标签生成一个“radio”类型的HTML“input”标签。
一个典型用法是把多个标签实例绑定到同一属性上,但它们有不同的值。
Sex:
Male:
radiobuttonpath="
sex"
M"
br/>
Female:
F"
13.9.7.
radiobuttons标签
这个标签生成多个“radio”类型的HTML“input”标签。
正像上面提到的checkboxes标签,你可能希望传入一个运行时的变量作为可用的选项。
这种用法下就需要使用radiobuttons标签。
在使用Map的情况下,map条目的键被用作值,map条目的值被用作显示的文本标记。
也可以使用一个定制的对象,提供“itemValue”属性存放值,“itemLabel”属性存放文本标记。
radiobuttonspath="
${sexOptions}"
13.9.8.
password标签
这个标签生成一个“password”类型的HTML“input”标签,并赋以绑定的值。
Password:
passwordpath="
password"
请注意默认情况下,口令的值不会被显示出来。
如果一定要显示口令的值,就把“showPassword”属性的值置为true。
^76525bvHGq"
showPassword="
true"
13.9.9.
select标签
这个标签生成一个HTML“select”元素。
它支持被选中的选项的数据绑定,也支持使用嵌套的option和options标签。
我们假设有一个User拥有多项专长。
Skills:
selectpath="
skills"
${skills}"
如果这个User的专长是草药学,那么“Skills”这一行的HTML源代码就如下所示:
selectname="
multiple="
optionvalue="
Potions"
Potions<
/option>
selected="
selected"
Herbology<
Quidditch<
/select>
13.9.10.
option标签
这个标签生成一个HTML的“option”。
根据绑定的值,它会恰当的设置“selected”属性。
House:
house"
Gryffindor"
Hufflepuff"
Ravenclaw"
Slytherin"
select>
如果这个User的宿舍在Gryffindor(Gryffindor是哈利·
波特在Hogwarts的宿舍——译者注),那么“House”这一行的HTML源代码就如下所示:
Gryffindor<
Hufflepuff<
Ravenclaw<
Slytherin<
13.9.11.
options标签
这个标签生成一个HTML的“option”标签的列表。
Country:
country"
-"
label="
--PleaseSelect"
optionsitems="
${countryList}"
itemValue="
code"
itemLabel="
name"
如果这个User生活在英国,那么“Country”这一行的HTML源代码就如下所示:
--PleaseSelect<
AT"
Austria<
UK"
UnitedKingdom<
US"
UnitedStates<
上面的例子展示了结合使用option标签和options标签产生相同的标准HTML,也让你在JSP中显式的指定一个值只用于显示目的(在它所处的位置),例如例子中的默认字符串:
“--PleaseSelect”。
13.9.12.
textarea标签
这个标签生成一个HTML的“textarea”。
Notes:
textareapath="
notes"
rows="
3"
cols="
20"
errorspath="
13.9.13.
hidden标签
这个标签使用绑定的值生成类型为“hidden”的HTML“input”标签。
在生成的HTML代码中,input标签的值和表单支持对象相应属性的值保持一致。
如果要提交一个未绑定的值,就只能使用类型为“hidden”的HTMLinput标签了。
hiddenpath="
如果我们选择以隐藏形式提交“house”的值,HTML代码将如下所示:
13.9.14.
errors标签
这个标签通过一个HTML“span”标签展现字段的错误。
它提供了访问由你的控制器或者与你的控制器关联的任何验证器产生的错误的途径。
假设我们想要在表单提交时显示所有与firstName和lastName字段有关的错误。
我们为User类的实例编写了名为UserValidator的验证器。
publicclassUserValidatorimplementsValidator{
publicbooleansupports(Classcandidate){
returnUser.class.isAssignableFrom(candidate);
publicvoidvalidate(Objectobj,Errorserrors){
ValidationUtils.rejectIfEmptyOrWhitespace(errors,"
"
required"
Fieldisrequired."
);
form.jsp将如下所示:
%--ShowerrorsforfirstNamefield--%>
%--ShowerrorsforlastNamefield--%>
SaveChan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- spring 标签 使用