Struts中的标签库Word文档格式.docx
《Struts中的标签库Word文档格式.docx》由会员分享,可在线阅读,更多相关《Struts中的标签库Word文档格式.docx(51页珍藏版)》请在冰豆网上搜索。
/a>
link>
Allowsthelinktobeloadedfromtherequestorotherbean
(3)常见HTML表单输入项和Struts实例
常见HTML表单输入项和Struts实例
Function
Textfield
input
type
=
"
text"
name
myname"
size
20"
>
text
property
/>
Textarea
input
textarea"
cols
50"
rows
4"
mytarea"
textarea
Radiobutton
radio"
rad1"
value
sel1"
radio
Checkbox
checkbox"
chk1"
checkbox
SubmitButton
submit"
Submit"
submitSubmit>
submit>
Resetbutton
reset"
reset/>
Selectionboxandoptions
select
name=
item"
option
i1"
Item
1
/option>
/select>
="
value="
option>
select>
2、用于生成基本的HTML元素的标签
(1)主要包括<
和<
(2)<
它是HTML标签库中最容易的标签。
它有三个属性:
locale和xhtml和lang属性。
如:
htmllang=”true”>
将被转化为<
htmllang=”zh-CN”>
(3)<
标签显示一个HTML元素,用一个href属性表示所包含的JSP页面的绝对位置。
只有当这个标签是内嵌在一个head标签部分时,它才有效生成HTML的<
base>
标签。
3、<
创建超链接
(1)<
的优点
生成HTML的<
标签,利用它来创建超链接有两个优点:
●允许在URL中以多种方式包含请求的参数;
●同时在用户关闭Cookie时,会采用URL重写把SessionID作为请求的参数包含在URL中,用于跟踪用户的Session状态。
●可以实现利用Action类来进行后端的业务组件的调度
(2)它有如下几个重要的属性
●forward:
指定全局转发的链接
首先在Struts的配置文件的<
global-forwards>
中定义一个<
forward>
元素
forwardname=”index”path=”/index.jsp”/>
/global-forwards>
然后在JSP页面中创建出<
标签
<
linkforward="
index"
LinktoGlobalActionForward
●href:
指定完整的URL链接
linkhref="
http:
//jakarta.apache.org/struts/index.html"
Generatean"
href"
directly
●page:
指定相对于当前网页的URL链接
linkpage="
/HtmlBasic.do"
Arelativelinkfromthispage
(3)在<
中的URL或者URI中包含单个请求的参数变量,而它的参数的值存储在当前的网页可访问的一个变量中
例一
%
StringstringBean="
ValuetoPassonURL"
;
%>
paramId="
urlParamName"
paramName="
stringBean"
URLencodeaparameterbasedonastringbeanvalue
例二
jsp:
useBeanid="
customerBean"
scope="
page"
class="
htmltaglibs.beans.CustomerBean"
/>
setPropertyname="
property="
name"
value="
weiqin"
paramProperty="
URLencodeaparameterbasedonacustomerbeanvalue
上面的意思是:
//127.0.0.1:
8080/htmltaglibs/HtmlBasic.do?
urlParamName=weiqin
而名称为urlParamName的参数的值是由对象名称为customerBean的JavaBean中的名称为“name”的属性值。
(4)在<
中的URL或者URI中包含多个请求的参数,此时应该将各个参数变量保存到一个Map类型的Java类中。
java.util.HashMapmyMap=newjava.util.HashMap();
myMap.put("
myString"
newString("
myStringValue"
));
myArray"
newString[]{"
str1"
"
str2"
str3"
});
pageContext.setAttribute("
map"
myMap);
name="
根据Map中的参数对URL进行编码
最后产生如下的效果:
myArray=str1&
myArray=str2&
myArray=str3&
myString=myStringValue。
请见下面的图示
例:
java.util.HashMapqueryParamMap=newjava.util.HashMap();
queryParamMap.put("
menuID"
5"
);
bookID"
newInteger(bookID).toString());
currentShowPage"
newInteger(getShowGuideBarParamBeanID.getCurrentShowPage()).toString());
pageContext.setAttribute("
queryParamMapName"
queryParamMap);
/BuyBook/buyBookURI.do"
styleClass="
gray"
购买
将产生下面的超链接
ahref="
/NetBook/BuyBook/buyBookURI.do?
menuID=5&
amp;
currentShowPage=1&
bookID=571"
购买<
4、<
(1)作用
标签以实现在页面中内嵌图片
(2)最重要的属性
图象文件相对于模块的路径;
前面必须带有一个斜线。
●height:
图象的高度。
●width:
图象的宽度。
●alt:
如果找不到图象,显示的文本。
(3)示例
例如:
imgpage="
/logo.gif"
height="
width="
200"
alt="
CompanyLogo"
会转换成:
imgsrc="
/myStrutsApp/logo.gif"
5、基本的表单标签
(1)综述
所有可以在<
form>
标记中使用的用来显示HTML输入控件的内嵌标记都使用下列属性来定义JavaScript事件处理器(注意其事件的名称与HTML中的JavaScript事件处理器名称的不同)。
属性
描述
onblur
字段失去了焦点
onchange
字段失去了焦点并且数值被更改了
onclick
字段被鼠标点击
ondblclick
字段被鼠标双击
onfocus
字段接收到输入焦点
onkeydown
字段拥有焦点并且有键按下
onkeypress
字段拥有焦点并且有键按下并释放
onkeyup
字段拥有焦点并且有键被释放
onmousedown
鼠标指针指向字段并且点击
onmousemove
鼠标指针指向字段并且在字段内移动
onmouseout
鼠标指针指向控件,但是指针在元素外围移动
onmouseover
鼠标指针没有指向字段,但是指针在元素内部移动
onmouseup
鼠标指针指向字段,并且释放了鼠标按键
buttonproperty="
register"
注册"
style="
botton1"
onclick="
location='
/UserManage/userregister.jsp'
标记属性如下:
Action
与表单相关的操作。
在配置中,这个操作也用来标识与表单相关的ActionFormbean
Enctype
表单HTTP方法的编码类型
Focus
表单中需要初始化焦点的字段
Method
表单使用的HTTP方法
Name
与表单相关的ActionFormbean的名称。
如果没有设置这个属性,bean的名称将会从配置信息中获得
onreset
表单复位时的JavaScript事件句柄
onsubmit
表单提交时的JavaScript事件句柄
Scope
搜索ActionFormbean的范围。
如果没有设置,将从配置文件中获取
Style
使用的格式
styleClass
这个元素的格式表类
Type
ActionFormbean的完整名称。
如果没有设置,将从配置文件获得
(3)Form标签的使用要求
在该标签中必须包含一个action属性,它是这个标签中唯一必需的属性。
如果不具备该属性则JSP页面会抛出一个异常。
之后你必须给这个action属性指定一个有效值。
如果你有这样一个标签:
formaction="
/login"
>
,那么你的Struts配置文件的元素中必须有一个如下显示为粗体的元素:
actionpath="
type="
com.javapro.struts.LoginAction"
loginForm"
request"
input="
/login.jsp"
forwardname="
success"
path="
/mainMenu.jsp"
/action>
(4)其它的应用
使用focus属性时你需要给它指定元素的名称。
比如,以下代码是定焦在第二个Text元素上的:
focus="
password"
UserName:
textproperty="
userName"
br>
Password:
submit/>
(5)查看某一个标签的各个属性
只需要查看其对应的*.tld文件中的声明
6、<
cancel>
标签
利用它可以生成“取消”按钮,用户按下该按钮后将产生一个取消事件,这个事件由Action类来处理,但如何处理则由我们在execute()方法中编程实现。
标签所对应的HTML标签
Cancel<
将生成如下的HTML标签内容
inputtype="
org.apache.struts.taglib.html.CANCEL"
Cancel"
bCancel=true;
(3)在Action类中处理“取消”按钮的事件---请见JBXStruts项目
publicActionForwardexecute(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequesthttpServletRequest,HttpServletResponsehttpServletResponse)
{
if(this.isCancelled(httpServletRequest))
return(actionMapping.findForward("
cancelDo"
));
}
}
Action类中的isCancelled()方法用来判断取消事件有没有发生,如果这个方法的返回为true,就表示取消事件发生了,可以在程序中进行相关的操作。
7、<
password>
标签用于生成一个口令字(typepassword)的输入区域。
该标签中的一个很重要的属性是“redisplay”,它用于重新显示以前输入到这个区域中的值。
该属性的缺省值为true。
然而,为了使password不能被重新显示,你或许希望将该属性的值设为false。
passwordproperty="
redisplay="
false"
8、Checkbox和RadioButton按钮
(1)Checkbox按钮
checkboxproperty="
checkbox1"
对于Checkbox而言,由于其属性为true和false。
因此在ActionForm中的成员属性定义时应该定义为boolean类型。
(2)RadioButton按钮
而<
radioproperty="
radioVal"
Value1"
由于其返回的值为字符串(它必须包含“value”属性),因此在ActionForm中的成员属性定义时应该定义为String类型。
(3)ActionForm中的属性定义
privatebooleancheckbox1;
publicbooleangetCheckbox1()
{
returnthis.checkbox1;
publicvoidsetCheckbox1(booleancheckbox1)
this.checkbox1=checkbox1;
}
privateStringradioVal="
publicStringgetRadioVal()
return(this.radioVal);
publicvoidsetRadioVal(StringradioVal)
this.radioVal=radioVal;
9、Multibox标签
(1)Multibox与checkbox的不同
它与<
checkbox>
一样,可以提供<
inputtype=”checkbox”>
元素,其区别在于<
multibox>
标签可以生成一组复选框,代表一组概念中的各个项目并且可以实现多选。
比如
●对于checkbox而言,每个checkbox的属性名称都不一样
读书:
运动:
checkbox2"
●对于<
标签而言,每个checkbox的属性名称都一样
您的爱好:
multiboxproperty="
intestring"
读书"
读书
运动"
运动
艺术"
艺术
(2)应用场合
如果应用中有多个Checkbox并且希望在ActionFormBean中用单个数组来表示它们,就可以采用<
。
(3)在ActionForm中的属性定义
针对上面的<
标签的ActionForm中的成员属性定义为一个数组(必须是数组这样才可以实现多选的效果),该数组的名称为标签中的成员属性名称。
privateString[]intestring;
publicString[]getIntestring()
{
returnintestring;
publicvoidsetIntestring(String[]intestring)
this.intestring=intestring;
当用户提交表单时,所有被选中的复选框的值都会被存放到ActionFormBean中的相应数组中。
如果某个复选框没有被选中,那么数组就不会包含它的值。
因此它可以动态地决定被选中的复选框的数目。
(3)显示出用户的选择项目
您的爱好为:
String[]intestring=(String[])request.getAttribute("
for(intindex=0;
index<
intestring.length;
index++)
{//考虑到有中文,应该进行转换编码格式
out.print(newString(intestring[index].getBytes("
ISO-8859-1"
),"
GB2312"
)+"
、"
}
10、<
和<
、<
options>
利用它可以创建出下拉列表(可以是单选或者多选),同时在<
内可以包含多个<
option>
html