实验五 Struts开发一.docx

上传人:b****7 文档编号:10788363 上传时间:2023-02-22 格式:DOCX 页数:18 大小:44.08KB
下载 相关 举报
实验五 Struts开发一.docx_第1页
第1页 / 共18页
实验五 Struts开发一.docx_第2页
第2页 / 共18页
实验五 Struts开发一.docx_第3页
第3页 / 共18页
实验五 Struts开发一.docx_第4页
第4页 / 共18页
实验五 Struts开发一.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

实验五 Struts开发一.docx

《实验五 Struts开发一.docx》由会员分享,可在线阅读,更多相关《实验五 Struts开发一.docx(18页珍藏版)》请在冰豆网上搜索。

实验五 Struts开发一.docx

实验五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:</p><p>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>

3.访问s-select.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:</p><p>select生成下拉选择框

head/>

使用s:

select生成下拉选择框

form>

--使用简单集合来生成下拉选择框-->

selectname="a"label="请选择您喜欢的图书"labelposition="top"

multiple="true"list="{'疯狂Java讲义','轻量级JavaEE企业应用实战',

'JavaScript:

TheDefinitiveGuide'}"/>

--使用简单Map对象来生成下拉选择框-->

selectname="b"label="请选择您想选择出版日期"labelposition="top"

list="#{'疯狂Java讲义':

'2008年9月',

'轻量级JavaEE企业应用实战':

'2008月12月',

'经典JavaEE企业应用实战':

'2010年7月'}"

listKey="key"

listValue="value"/>

--创建一个JavaBean实例-->

beanname="org.crazyit.app.service.BookService"id="bs"/>

--使用集合里放多个JavaBean实例来生成下拉选择框-->

selectname="c"label="请选择您喜欢的图书"labelposition="top"

multiple="true"

list="#bs.books"

listKey="author"

listValue="name"/>

form>

4.访问s-doubleselect.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:</p><p>doubleselect生成级联下拉列表框

head/>

使用s:

doubleselect生成级联下拉列表框

formaction="x">

doubleselect

label="请选择您喜欢的图书"

name="author"list="{'李刚','David'}"

doubleList="top=='李刚'?

{'轻量级JavaEE企业应用实战',

'经典JavaEE企业应用实战','疯狂Java讲义'}:

{'JavaScript:

TheDefinitiveGuide'}"

doubleName="book"/>

form>

5.访问s-optiontransferselect.jsp页面,体会optiontransferselect标签的使用。

<%--

网站:

//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:</p><p>optiontransferselect来生成可移动列表项的下拉列表框

head/>

使用s:

optiontransferselect来生成可移动列表项的下拉列表框

form>

--使用简单集合对象来生成可移动的下拉列表框-->

optiontransferselect

label="请选择你喜欢的图书"

name="cnbook"

leftTitle="中文图书:

"

rightTitle="外文图书"

list="{'疯狂Java讲义','Struts2权威指南',

'轻量级JavaEE企业应用实战','经典JavaEE企业应用实战'}"

multiple="true"

addToLeftLabel="向左移动"

selectAllLabel="全部选择"

addAllToRightLabel="全部右移"

headerKey="cnKey"

headerValue="---选择中文图书---"

emptyOption="true"

doubleList="{'ExpertOne-on-OneJ2EEDesignandDevelopment',

'JavaScript:

TheDefinitiveGuide'}"

doubleName="enBook"

doubleHeaderKey="enKey"

doubleHeaderValue="---选择外文图书---"

doubleEmptyOption="true"

doubleMultiple="true"

/>

form>

(三)类型转换器

1、建立Web工程,结构如图

2、编写复合类(User)。

publicclassUser

{

privateStringname;

privateStringpass;

//name属性的setter和getter方法

publicvoidsetName(Stringname)

{

this.name=name;

}

publicStringgetName()

{

returnthis.name;

}

//pass属性的setter和getter方法

publicvoidsetPass(Stringpass)

{

this.pass=pass;

}

publicStringgetPass()

{

returnthis.pass;

}

}

3、编写Action处理类(LoginAction.java)

packageorg.crazyit.app.action;

importcom.opensymphony.xwork2.Action;

importorg.crazyit.app.domain.*;

publicclassLoginActionimplementsAction

{

//User类型属性封装请求参数

privateUseruser;

privateStringtip;

//user属性的setter和getter方法

publicvoidsetUser(Useruser)

{

this.user=user;

}

publicUsergetUser()

{

returnthis.user;

}

//tip属性的setter和getter方法

publicvoidsetTip(Stringtip)

{

this.tip=tip;

}

publicStringgetTip()

{

returnthis.tip;

}

publicStringexecute()throwsException

{

//通过user属性的name属性和pass属性来判断控制逻辑

if(getUser().getName().equals("crazyit.org")

&&getUser().getPass().equals("leegang"))

{

setTip("登录成功");

returnSUCCESS;

}

else

{

setTip("登录失败!

");

returnERROR;

}

}

}

4、建立配置文件struts.xml

xmlversion="1.0"encoding="GBK"?

>

DOCTYPEstrutsPUBLIC

"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1.7//EN"

"http:

//struts.apache.org/dtds/struts-2.1.7.dtd">

/welcome.jsp

/welcome.jsp

.

5、编写Web工程的配置文件

xmlversion="1.0"encoding="GBK"?

>

xmlns:

xsi="http:

//www.w3.org/2001/XML

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1