第15章struts2标签讲解Word下载.docx
《第15章struts2标签讲解Word下载.docx》由会员分享,可在线阅读,更多相关《第15章struts2标签讲解Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
html>
<
head>
title>
MyJSP'
index.jsp'
startingpage<
/title>
/head>
body>
访问属性:
ahref="
http:
//localhost:
8080/ch2_example1/test/tags.action?
username=aaa&
password=bbb"
tags<
/a>
/body>
/html>
2.新建一个my.tags.TagsAction:
packagemy.tags;
importcom.opensymphony.xwork2.ActionSupport;
publicclassTagsActionextendsActionSupport{
privateStringusername;
privateStringpassword;
publicStringexecute(){
this.addFieldError("
fielderror.test"
"
wrong!
);
returnSUCCESS;
}
publicStringgetUsername(){
returnusername;
publicvoidsetUsername(Stringusername){
this.username=username;
publicStringgetPassword(){
returnpassword;
publicvoidsetPassword(Stringpassword){
this.password=password;
}
3.修改struts.xml:
packagename="
mypack"
namespace="
/test"
extends="
struts-default"
<
actionname="
tags"
class="
my.tags.TagsAction"
method="
execute"
resultname="
success"
/WEB-INF/page/tags.jsp
/result>
/action>
/package>
4.在WEB-INF/page下新建tags.jsp:
%@taglibprefix="
s"
uri="
/struts-tags"
%>
tags.jsp'
ol>
li>
property:
s:
propertyvalue="
username"
/>
/li>
property赋值为字符串:
'
username'
property设为默认值:
admin"
default="
管理员"
property设定HTML:
hr/>
escape="
true"
/ol>
测试:
在地址栏输入:
8080/ch2_example1/index_tags.jsp
点击超链接tags
得到下面的结果:
1.property:
aaa
2.property赋值为字符串:
username
3.property设为默认值:
管理员
4.property设定HTML:
解释:
这个用法上节课已经讲过,不解释了。
这是把username作为字符串处理。
这是给admin赋默认值,如果admin有值,则取它的值显示,如果没有,则显示默认值。
如果把escape改为false,则将对<
进行解析。
2、Bean标签:
Bean标签用于创建一个JavaBean的实例,创建实例时通过<
param/>
给JavaBean传入参数。
如果通过<
给JavaBean传入属性值则需要给JavaBean设置Setter方法,如果需要访问JavaBean的属性则需要设置Getter方法。
Bean标签有两个属性:
1.Name:
必填的属性,指定需要实例化的Java类
2.Var:
可选项。
如指定了该属性,则该JavaBean实例会被放入StackContext中(不是ValueStack),从而允许直接通过该var属性来访问该JavaBean的实例。
新建Person类
packagemy.ognl;
publicclassPerson{
privateStringname;
privateStringmajor;
publicStringgetName(){
returnname;
publicvoidsetName(Stringname){
this.name=name;
publicStringgetMajor(){
returnmajor;
publicvoidsetMajor(Stringmajor){
this.major=major;
publicStringmethod1(){
return"
来自JavaBean的方法"
publicStringmethod1(Stringname){
returnname+"
新建index1.jsp:
%@taglibprefix="
basehref="
%=basePath%>
index1.jsp'
metahttp-equiv="
pragma"
content="
no-cache"
cache-control"
expires"
0"
keywords"
keyword1,keyword2,keyword3"
description"
Thisismypage"
--
linkrel="
stylesheet"
type="
text/css"
href="
styles.css"
-->
beanname="
my.ognl.Person"
paramname="
name"
value="
zhangsan'
/s:
param>
mynameis:
bean>
访问该jsp,得到结果为:
修改index1.jsp:
var="
person"
#person.name"
得到的结果是一样的。
如果想访问JavaBean中的方法,修改index1.jsp:
#person.method1()"
#person.method1('
ooo'
)"
测试结果为:
在tags.jsp中加入,通过debug标签查看结果
定义bean:
my.ognl.Dog"
mydog"
dagou'
debug>
在tags.jsp中加入以下语句:
查看结果及值栈内容:
xiaogou'
结果为:
注意:
开始的时候,新建对象,放到栈顶。
执行结束,对象就不在栈中了。
所以一定要在<
中赋值和取值,否则取不到。
如果想在<
执行完之后还能使用,就用var。
修改var这一部分:
取狗的名字:
#mydog.name"
此时mydog是放在了ActionContext中,可以通过#取出来。
三、fielderror标签
修改tags.jsp
fielderrorfieldName="
theme="
simple"
fielderror>
查看输出结果。
四、if、elseif、else标签
修改tags.jsp:
if,elseif,else:
age=
#parameters.age"
password=bbb&
age=8&
age=10
得到一个集合
age=8,10
如果希望得到集合中的第一个值,则写为:
#parameters.age[0]"
在刚才的基础上使用分支控制标签:
iftest="
#parameters.age[0]<
wrongdata<
if>
elseiftest="
18"
stillchild<
elseif>
else>
mrright!
修改地址栏传入的年龄值,查看不同的结果。
继续修改tags.jsp:
如果没有aaa这个属性,则可以这样判断:
#parameters.aaa==null"
aaaisnull<
五、iterator标签
遍历集合:
iteratorvalue="
{1,2,3}"
property/>
|
iterator>
自定义变量:
{'
aaa'
'
bbb'
ccc'
}"
x"
#x.toUpperCase()"
1.遍历集合:
1|2|3|
2.自定义变量:
AAA|BBB|CCC|
使用status:
status="
status"
遍历的元素个数:
#status.count"
遍历的元素索引:
#status.index"
遍历的是否偶数:
#status.even"
遍历的是否奇数:
#status.odd"
遍历的是否第一个?
#status.first"
遍历的是否最后一个?
#status.last"
br/>
输出结果为:
1.使用status:
aaa|遍历的元素个数:
1遍历的元素索引:
0遍历的是否偶数:
false遍历的是否奇数:
true遍历的是否第一个?
true遍历的是否最后一个?
false
bbb|遍历的元素个数:
2遍历的元素索引:
1遍历的是否偶数:
true遍历的是否奇数:
false遍历的是否第一个?
false遍历的是否最后一个?
ccc|遍历的元素个数:
3遍历的元素索引:
2遍历的是否偶数:
true
映射:
#{1:
a'
2:
b'
3:
c'
key"
|<
value"
#x.key"
#x.value"
映射:
1|a2|b3|c
【作业】
设计一个jsp页面,要求包含以下标签,该页面的主题自定。
checkbox、checkboxlist、combobox
date、doubleselect、label
password、radio
reset、select
text、textarea、textfield
要求查阅struts文档,将这些标签的介绍和属性也要写在大作业中。