struts1 标签Word下载.docx
《struts1 标签Word下载.docx》由会员分享,可在线阅读,更多相关《struts1 标签Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
*******
imgpage="
images/zhangying.gif"
/>
对应
imgsrc="
传参数
jspimage.jsp"
paramId="
id"
paramName="
1"
jspimage.jsp?
id=1"
****<
link>
3个属性pagehrefforward
代替Html中超链接标记
ahref="
sueccess.jsp"
跳转<
/a>
linkpage="
logout.jsp"
相对路径page
注销
/html:
注销<
linkhref="
"
绝对路径href
sohu网站
sohu网站<
struts-config.xml中的global-forwards
forward
linkforward="
success"
对应全局转发
成功页面
/success.jsp"
成功页面<
传参数:
paramId指定传参数的名字id
paramName指定参数的值1
/deleteemp.do"
删除
/deleteemp.do?
删除<
rewrite>
输出对应的URI的字符串
不产生超链接
rewritepage="
/deleteemp.do?
id=1
b)基本表单标签->
form表单******
form>
text>
hidden>
reset>
submit>
password>
checkbox>
radio>
file>
-----文件类型
select>
option>
对应基本的表单元素property="
value="
inputtype="
text"
name="
user"
对应于
textproperty="
<
checkbox"
ah"
体育
2"
游泳
checkboxproperty="
体育<
游泳<
---文件的上传的标签
common-fileupload-1.0.jar
实现文件的上传
actionForm中FormFile的类型代表file文件
用处:
file/>
文件上传得
link/>
页面跳转的
c)错误和正确信息标签*******
jdk的bin中native2ascii.exe
编码方式变为Unicode方式
native2ascii-encodinggb2312applicationResources.properties
ApplicationResources_zh_CN.properties
errors/>
输出所有actionError的内容
errorsproperty="
uname"
输出key=uname对应的内容
2.bean标签访问变量的属性或输出值
访问JavaBean
a)访问http请求信息和jsp隐式对象
**<
bean:
cookie>
cookie访问
cookieid="
mycookie"
loginname"
123"
id--自己设置Cookie变量的名字
name--Cookie对象的名字
value--默认值
writename="
property="
value"
取出值
name"
取出名字
Cookiec=newCookie("
"
northwind"
);
c.getValue()
c.getName()
***<
parameter>
访问请求的参数request
parameterid="
arg1"
username"
north"
对应的Java代码
request.getParameter("
****<
page>
访问jsp的隐式对象---属性
session
getId()->
id
getCreationTime()->
creationTime
application
request
response
所有对象的get方法能访问到的属性都可以被这个标签访问
属性的第一个字母变成小写后都可以访问
pageid="
this_session"
session"
creationTime"
b)访问资源
message>
访问applicationResources中的消息
messagekey="
hello.user"
输出key的值
include>
包含资源到一个变量中
动作<
jsp:
includepage="
testpage1.jsp"
页面运行结果包含进来
等价于下面2句话
includeid="
tp1"
page="
/testpage1.jsp"
输出变量的内容
输出的是页面的内容
c)定义和输出JavaBean
*****<
define>
定义一个变量
defineid="
aa"
Hello"
->
Hello
bb"
empbean"
ename"
JavaBean:
empbean
属性ename
变量Stringbb=empbean.getEname();
得到empbean中属性ename的值
write>
显示JavaBean及其属性或变量的内容
scope="
name=某个范围中的属性的名字(对象)
property=JavaBean中的属性
scope=访问对象的范围
3.logic标签
a)ifelse
ifa=bthen等于
不等于
大于
小于
字符串
匹配
不匹配
空值
非空值
b)循环
for(inti=0;
i<
vect.size();
i++){
}
对集合的遍历如何做?
?
a)
存在性
logic:
present/>
是否存在某种变量
cookie="
cookie名字"
header="
request中的header"
parameter="
参数"
变量或JavaBean"
request/session/application"
如果存在就输出标签体的内容
相反的标签
notpresent/>
是否为空
空-"
或null
emptyname="
/logic:
empty>
是否相等
equal/>
大于>
greaterThan/>
>
=<
greaterEqual/>
小于<
lessThan/>
lessEqual/>
匹配
match/>
nomatch/>
location表示的是位置
从开始匹配start
从结束匹配end
循环
iterate>
%
Vectorv=newVector();
v.add("
3"
4"
request.setAttribute("
number"
v);
id定义一个变量
name定义变量的内容
iterateid="
ele"
对集合中所有元素的循环访问
indexId定义循环计数器变量i
offset开始元素的位置
length要输出元素的个数
indexId="
index"
offset="
length="
.<
br>
c)logic转发和重定向
forwardname="
对应global-forwards
转发到index
forwardpage="
redirectpage="
aa.jsp"
重定向到aa.jsp
response.sendRedirect("
)
struts中文乱码问题的解决
1>
编码转换函数
2>
过滤器
Action和jsp的开发其实就是对Struts标签的运用.掌握标签的熟练程度决定了开发效率.初学者往往对某个数据表示或数据获取,束手无策.一个简单的问题浪费一两天时间也就不足为怪了.导致整个开发进度延后.外面的struts书籍介绍标签和数据传输原理都比较简单,下面我对标签技术和数据传输原理,进行全方位多角度的剖析.希望对各位有所帮助.以此为模版,将大大提高开发效率.以sample为机能名称.
①画面上有一text框,显现内容为某一数据表中的某一字段.那我们该如何设置和得到此数据呢?
SampleJsp:
html:
textname="
sampleForm"
/>
SampleForm.java:
//form文件名必须和jsp中标签的name对应
Stringname;
//必须和jsp中该项目的property一样
publicStringgetName(){returnname;
}
publicvoidsetName(Stringname){this.name=name;
}
变量和方法名,不可以顺意.变量abcd,那方法名就是setAbcd和getAbcd.注意大小写.
jsp中的项目必然全部在form里面有所表示,当然反过来,form里的项目在jsp中不一定全部表示(可能有辅助动作的对象或验证)
SampleAction.java
publicActionForwardstart(ActionMappingmapping,
ActionFormargForm,HttpServletRequestreq,HttpServletResponseres)
throwsException{
SampleFormform=(SampleForm)argForm;
Stringname=………………othercodesforgetnamefromdb
//setname
form.setName(name);
//nowtextwillshowthename
publicActionForwardsave(ActionMappingmapping,
//getname
Stringname=form.getName();
………………othercodesforsavename
jsp和form对应,action操作form,form其实起了传输数据的作用.这就是struts标签的核心原理.得到数据和设置数据没问题了,剩下的工作也就得心应手了.
②再看一个处理标签的方法.画面上是一个明细一览表示(表).表示的是数据表user的相关数据(id,name).
SampleJsp:
logic:
presentname="
userList"
sampleForm"
tr>
td>
bean:
/td>
/tr>
/logic:
present>
present是逻辑判断,sampleForm中userList为空(无数据或null),下面的东东不显示.
iterate是逻辑循环,userList有几条数据,就循环几次.
是lable标签,显示user这个对象(entity)的id属性.或者说显示数据表user中的一条记录中的id这个列.
User.java(就是entity,因为和业务密切,高达不开发,切记切记不可顺意修改.遇到设计有问题,QA日本)
Stringid;
publicStringgetId(){returnid;
publicvoidsetId(Stringid){this.id=id;
publicStringgetName(){returnname;
publicvoidsetName(Stringname){this.name=name;
看到这,是否觉得面熟啊,好象和FORM一样,但有点不一样,不一样在哪里,看下去后,自己感悟吧.
SampleForm.java:
ListuserList;
publicListgetUserList(){returnuserList;
publicvoidsetUserList(ListuserList){this.userList=userList;
form只要这些,那你会问,id和name,struts如何能得到呢?
你不是说过jsp必须和form一样对应吗?
不错,一一对应是肯定的.UserList信息已经包含了一切,还需要定义id和name吗?
至于struts如何得到数据,那就看下面的action是如何处理的吧.
publicActionForwardstart(ActionMappingmapping,
ArrayListuserList=newArrayList();
Useruser=newUser();
user.setId
(1);
user.setName(“name1”);
userList.add(user);
user.setId
(2);
user.setName(“name2”);
//setuserList
form.setUserList(userList);
//nowtablewillshow
一切搞定.是不是很简单,但估计你还是有点晕.你还是想问我,id和name到底是如何设置的?
Action设置了userList就够了,它包含够多的信息了.struts看见了你设置了userList.它就知道了这个list里面都user(entity),useruser(entity)里面不是有很多get,set方法吗?
再看下下面的东东.
id=”user”,和name="
对应了,明白啥意思吗?
.就象循环指明索引一样.property="
就是要显示的这个索引对应的内容.Struts就是这样来认id和name的.
③接下来,看一个加强版的table例子,在显示的明细一览,每一行前面加一个radio框,让用户选择哪个user.进行删除操作.
radioname="
selectedUserId"
%=((jp.co.mhcb.obs.persis.entity.User)pageContext.getAttribute("
user"
)).getId().toString()%>
sampleForm.java:
StringselectedUserId;
publicStringgetSelectedUserId(){returnselectedUserId;
publicvoidsetSelectedUserId(StringselectedUserId){
this.selectedUserId=selectedUserId;
publicActionForwarddelete(ActionMappingmapping,
StringselectedUserId=form.getSelectedUserId();
//getuserbyselectedid
Useruser=