实验五 Struts开发一.docx
《实验五 Struts开发一.docx》由会员分享,可在线阅读,更多相关《实验五 Struts开发一.docx(18页珍藏版)》请在冰豆网上搜索。
实验五Struts开发一
实验五Struts2开发
【实验目的】:
1.理解MVC架构的思想
2.掌握Struts应用程序开发的步骤
3.理解Action的机制和作用。
4.掌握Action的开发和配置。
5.理解Struts2标签的使用
6.理解Struts2的类型转换功能
7.掌握如何使用Struts2框架实现表单数据和引用类型的转换。
【实验内容】:
开发一个简单的Struts2应用程序,演示Struts2的工作流程;体会Struts2标签的使用;利用Struts2框架实现表单数据和复合类型数据的转换。
【实验步骤】:
(一)StrutsExample应用程序的开发。
1.在MyEclipse工作台中创建一个Web工程,工程名为StrutsExample。
目录结构如下:
其中lib文件夹中的文件是应用Struts2框架需要的类文件,需要手动加入。
2.实现Action类
Action在Struts2框架中是作为模型而存在的,它主要包括两个功能:
调用业务逻辑请求和进行数据的传递。
当Action对请求处理完毕后,会返回一个字符串类型的结果,这个结果作为逻辑视图而存在,Struts2框架正是通过这个字符串,在配置文件中将逻辑视图与物理视图建立起映射关系。
Action既可以直接接受客户端在浏览器中的直接访问请求,也可以通过在JSP页面中转移请求至某个Action。
在src目录下,新建com..struts2.hello包,在其下建立Java类HelloAction,对应于源文件HelloAction.java。
packagecom.struts2.hello;
publicclassHelloAction{
privateStringmessage;
publicStringgetMessage(){
returnmessage;
}
publicvoidsetMessage(Stringmessage){
this.message=message;
}
publicStringexecute(){
if((this.message.equals(""))||(this.message==null)){
message="请输入问候语";
}
return"success";
}
}
3.配置Action类
在com.struts2.hello包下,新建XML文件struts.xml。
用于配置Action的实现类、逻辑视图和物理视图之间的映射关系。
代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http:
//struts.apache.org/dtds/struts-2.0.dtd">
/hello.jsp
4.实现视图页面
创建hello.jsp页面。
代码如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%>
<%@taglibprefix="s"uri="/struts-tags"%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
问候程序propertyvalue="message"/>
formaction="hello">
textfieldname="message"label="问候语"value=""/>
submitvalue="提交"/>
form>
5.配置web.xml文件
配置Struts2的核心拦截器,(其中黄色部分的代码可以替换成org.apache.struts2.dispathcher.ng.filter.StrutsPrepareAndExecuteFilter)代码如下:
xmlversion="1.0"encoding="UTF-8"?
>
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"xsi:
schemaLocation="
Struts2Filter
org.apache.struts2.dispatcher.FilterDispatcher
Struts2Filter
/*
6.发布应用程序到Tomcat服务器上,并访问http:
//localhost:
8080/StrutsExample/hello.jsp。
查看运行情况。
通过分析,理解使用Struts2框架,数据的传递和请求处理过程。
注意:
Struts2应用程序,如果出现如下错误:
“严重ErrorfilterStart”,进一步发现是找不到StringUtil类,将commons-lang-2.5.jar复制到WEB_INF\lib即可。
(二)观察Strutts2标签的使用
1.在MyEclipse中导入工程formTag,发布到Web服务器上。
2.运行程序,访问s-checkboxlist.jsp页面,体会复选框标签的使用。
s-checkboxlist.jsp
<%--
网站:
//www.crazyit.org">疯狂Java联盟
authoryeeku.H.leekongyeeku@
version1.0
Copyright(C),2001-2012,yeeku.H.Lee
Thisprogramisprotectedbycopyrightlaws.
ProgramName:
Date:
--%>
<%@pagecontentType="text/html;charset=GBK"language="java"errorPage=""%>
<%@taglibprefix="s"uri="/struts-tags"%>
DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http:
//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//www.w3.org/1999/xhtml">
使用s:
checkboxlist生成多个复选框
head/>
使用s:
checkboxlist生成多个复选框
form>
--使用简单集合来生成多个复选框-->
checkboxlistname="a"label="请选择您喜欢的图书"
labelposition="top"list="{'轻量级JavaEE企业应用实战'
'经典JavaEE企业应用实战'
'疯狂Java讲义'}"/>
--使用简单Map对象来生成多个复选框
使用Map对象的key(书名)作为复选框的value,
使用Map对象的value(出版时间)作为复选框的标签-->
checkboxlistname="b"label="请选择您想选择出版日期"
labelposition="top"list="#{'疯狂Java讲义':
'2008年9月'
'轻量级JavaEE企业应用实战':
'2008月12月'
'经典JavaEE企业应用实战':
'2010年8月'}"
listKey="key"
listValue="value"/>
--创建一个JavaBean对象,并将其放入StackContext中-->
beanname="org.crazyit.app.service.BookService"id="bs"/>
--使用集合里放多个JavaBean实例来生成多个复选框
使用集合元素里name属性作为复选框的标签
使用集合元素里author属性作为复选框的value-->
checkboxlistname="b"label="请选择您喜欢的图书"
labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>
form>