HTML标签库中的标签基本上都是和HTML Tag一一对应的。但我们经常使用的主要是<html:form>标签及其子标签。因此,在本文将介绍一下<html:form>及其常用子标签的用法。
一、HTML标签库中的常用标签
1. <html:form>标签
<html:form>标签对应于HTML<form>标签。用于向服务端提交用户输入信息。<html:form>标签和HTML<form>标签在使用方法上基本相同,但它们的一个重要的区别是<html:form>标签的action属性值所指的Struts动作在struts-config.xml中必须正确配置,否则<html:form>标签会因为未找到Struts动作而抛出异常,从页使JSP页面无法正常运行,而HTML<form>无论action属性的值所指的URL是否正确(或Struts动作是否在struts-config.xml中正确配置),都会正常显示。<html:form>标签的基本用法如下:
<
html:form
action
="Struts动作"
method
="get/post"
>
2. <html:text>标签
<html:text>标签是最常用的HTML标签,它对应于type属性值为“text”的HTML<input>标签。每一个和HTML Tags对应的HTML标签都有一个property属性,<html:text>标签也不例外。这个属性用于和ActionForm的子类对象实例绑定,也就是说,property属性的值必须和ActionForm子类中相应的属性拥有同样的名子。如果property属性的值在ActionForm子类中未找到相应的属性名,该HTML标签就会由于抛出异常而使JSP页面无法正常显示。<html:text>标签的基本用法如下:
<
html:text
property
="name"
/>
<html:text>
标签的其他属性(如size
属性)和<input type=”text” ... />
标签的相应属性使用方法完全一致。
3. <html:radio>标签
<html:radio>
标签对应于type
属性值为“radio
”的HTML<input>
标签。如果ActionForm
子类的某个属性有多个可枚举的选择值(如性别为“男”、“女”),就可以使用<html:radio>
来采集用户的输入信息。每一个可能的值对应一个<html:radio>
标签,如性别选项对应两个<html:radio>
标签,代码如下:
男
<
html:radio
property
="sex"
value
="1"
/>
女
<
html:radio
property
="sex"
value
="2"
/>
其中两个<html:radio>标签中的property属性值必须都为“sex”,每个value表示选中当前选项后,提交给服务端的值,也就是通过ActionForm的子类实例对象的相应属性可以获得的值。
4. <html:checkbox>
标签
<html:checkbox>
标签对应于type
属性值为“checkbox
”的HTML<input>
标签。<html:checkbox>
标签的基本用法如下:
<
html:checkbox
property
="student"
value
="true"
/>
其中value
属性表示当勾选这个复选框时提交给服务端的值。
5. <html:multibox>标签
<html:multibox>标签实际上也对应于type属性值为“checkbox”的HTML<input>标签。但<html:multibox>和<html:checkbox>在映射到ActionForm子类实例对象的相应属性的映射方式不同。所有property属性值相同的<html:multibox>标签被映射到同一个property所指的属性中,并且这个属性是一个数组类型。而<html:checkbox>标签只对应了一个值。<html:multibox>标签的基本用法如下:
上网
<
html:multibox
property
="hobbies"
value
="上网"
/>
旅游
<
html:multibox
property
="hobbies"
value
="旅游"
/>
足球
<
html:multibox
property
="hobbies"
value
="足球"
/>
围棋
<
html:multibox
property
="hobbies"
value
="围棋"
/>
其中value
属性表示选中当前复选框的返回值。
6. <html:select>
和
<html:option>
标签
<html:select>
和<html:option>
组合对应了HTML
中的<select>
和<option>
组合。这两个标签的基本用法如下:
<
html:select
property
="work"
>
<
html:option
value
="软件工程师"
/>
<
html:option
value
="软件测试工程师"
/>
<
html:option
value
="项目经理"
/>
<
html:option
value
="高级顾问"
/>
<
html:option
value
="其他"
/>
</
html:select
>
其中value
属性表示在下拉列表框中选择某一项时向服务端提交的值。
7. <html:submit>和<html:reset>标签
这两个HTML标签分别对应了type为“submit”和“reset”的HTML<input>标签。它们的基本用法如下:
<
html:submit
value
="提交"
/>
<
html:reset
value
="重置"
/>
其中value
属性表示在按钮上显示的信息。
8..
其他的
HTML
标签
在HTML
标签库中还有很多其他的标签。关于这些标签的详细信息读者可以参阅Struts
的官方网站,URL
如下:
http://struts.apache.org/1.2.9/userGuide/struts-html.html
二、
HTML
标签库演示实例
在本文给出了一个完整的例子来演示如何通过HTML
标签来展现用户界面,以及如何从由HTML
标签生成的界面中获取用户提交的信息。实现这个例子需要如下四步:
【第
1
步】
建立使用HTML
标签的JSP
页面
在<samples
工程目录>
中建立一个htmlTags.jsp
文件,并输入如下的内容:
<%
@ page pageEncoding
=
"
GBK
"
%>
<%
@ taglib uri
=
"
http://struts.apache.org/tags-html
"
prefix
=
"
html
"
%>
<
html
>
<
head
>
<
title
>
HTML标签库演示
</
title
>
</
head
>
<
body
>
<
html:form
action
="htmlTags"
method
="post"
>
姓名:
<
html:text
property
="name"
/>
<
p
/>
性别: 男
<
html:radio
property
="sex"
value
="1"
/>
女
<
html:radio
property
="sex"
value
="2"
/>
<
p
/>
学生:
<
html:checkbox
property
="student"
value
="true"
/>
<
p
/>
爱好: 上网
<
html:multibox
property
="hobbies"
value
="上网"
/>
旅游
<
html:multibox
property
="hobbies"
value
="旅游"
/>
足球
<
html:multibox
property
="hobbies"
value
="足球"
/>
围棋
<
html:multibox
property
="hobbies"
value
="围棋"
/>
<
p
/>
职业:
<
html:select
property
="work"
>
<
html:option
value
=""
/>
<
html:option
value
="软件工程师"
/>
<
html:option
value
="软件测试工程师"
/>
<
html:option
value
="项目经理"
/>
<
html:option
value
="高级顾问"
/>
<
html:option
value
="其他"
/>
</
html:select
>
<
p
/>
<
html:submit
value
="提交"
/>
<
html:reset
value
="重置"
/>
</
html:form
>
</
body
>
</
html
>
现在
htmlTags.jsp
还运行不了,因为
htmlTags
动作并没有在
struts-config.xml
中配置。下面我们先在
struts-config.xml
中配置一下这个
htmlTags
动作和相应的
ActionForm
的子类。
【第2步】
配置
ActionForm
子类和
htmlTags
动作
打开
struts-config.xml
,在
<form-beans>
中加入如下的
<form-bean>
标签:
<
form-bean
name
="htmlTagsForm"
type
=" actionform.HtmlTagsForm"
/>
然后在
<action-mappings>
中加入如下的
<action>
标签:
<
action
name
="htmlTagsForm"
path
="/htmlTags"
scope
="request"
type
=" action.HtmlTagsAction"
/>
我们从上面两段配置代码可以看出,ActionForm
的子类为HtmlTagsForm
,动作类为HtmlTagsAction
,下面我们就来建立这两个类。
【第
3
步】
实现HtmlTagsForm
类
在本例中,HtmlTagsForm
类只含有用于接收用户提交的信息的属性,除此之外,并未在这个类中做其他的事(如验证数据)。在<samples
工程目录>"src" actionform
目录中建立一个HtmlTagsForm.java
文件,并输入如下的代码:
package
actionform;
import
org.apache.struts.action.
*
;
public
class
HtmlTagsForm
extends
ActionForm
{
private
String name;
private
String sex;
private
Boolean student;
private
String[] hobbies;
private
String work;
public
String getWork()
{
return
work;
}
public
void
setWork(String work)
{
this
.work
=
work;
}
public
String[] getHobbies()
{
return
hobbies;
}
public
void
setHobbies(String[] hobbies)
{
this
.hobbies
=
hobbies;
}
public
String getName()
{
return
name;
}
public
String getSex()
{
return
sex;
}
public
void
setSex(String sex)
{
this
.sex
=
sex;
}
public
void
setName(String name)
{
this
.name
=
name;
}
public
Boolean getStudent()
{
return
student;
}
public
void
setStudent(Boolean student)
{
this
.student
=
student;
}
}
【第
4
步】
建立HtmlTagsAction
类
HtmlTagsAction
类的主要功能是通过HtmlTagsForm
类的实例对象读取用户提交的信息,并将它们输出的客户端浏览器。在<samples
工程目录>"src"action
目录中建立一个HtmlTagsAction.java
文件,并输入如下的代码。
package
action;
import
javax.servlet.http.
*
;
import
org.apache.struts.action.
*
;
import
java.io.
*
;
import
actionform.HtmlTagsForm;
public
class
HtmlTagsAction
extends
Action
{
public
ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
HtmlTagsForm htForm
=
(HtmlTagsForm) form;
try
{
response.setCharacterEncoding(
"
GB2312
"
);
PrintWriter out
=
response.getWriter();
out.println(
"
姓名:
"
+
htForm.getName()
+
"
<p/>
"
);
if
(htForm.getSex()
!=
null
)
out.println(
"
性别:
"
+
(htForm.getSex().equals(
"
1
"
)
?
"
男
"
:
"
女
"
)
+
"
<p/>
"
);
out.println(
"
学生:
"
+
(htForm.getStudent()
==
null
?
"
否
"
:
"
是
"
)
+
"
<p/>
"
);
if
(htForm.getHobbies()
!=
null
)
{
out.println(
"
爱好:
"
);
for
(String hobby: htForm.getHobbies())
out.println(hobby
+
"
"
);
out.println(
"
<p/>
"
);
}
if
(htForm.getWork()
!=
null
)
out.println(
"
职业:
"
+
htForm.getWork());
}
catch
(Exception e)
{
}
return
null
;
}
}
启动Tomcat
,并在IE
中输入如下的URL
:
http://localhost:8080/samples/htmlTags.jsp
在出现用户界面后,输入如图1所示的信息。
图1
在点击“提交”按钮后,将显示如图2
所示的页面。
图2
|
0人
|
了这篇文章 |
类别: Struts┆阅读(
0)┆评论(
0) ┆ 返回博主首页┆ 返回博客首页
上一篇 09考研数据结构试题的一种解法(Java版) 下一篇 用缓冲技术提高JSP程序性能和稳定性