ssh2框架 的一个用例实现.docx

上传人:b****8 文档编号:30559477 上传时间:2023-08-16 格式:DOCX 页数:17 大小:468.47KB
下载 相关 举报
ssh2框架 的一个用例实现.docx_第1页
第1页 / 共17页
ssh2框架 的一个用例实现.docx_第2页
第2页 / 共17页
ssh2框架 的一个用例实现.docx_第3页
第3页 / 共17页
ssh2框架 的一个用例实现.docx_第4页
第4页 / 共17页
ssh2框架 的一个用例实现.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

ssh2框架 的一个用例实现.docx

《ssh2框架 的一个用例实现.docx》由会员分享,可在线阅读,更多相关《ssh2框架 的一个用例实现.docx(17页珍藏版)》请在冰豆网上搜索。

ssh2框架 的一个用例实现.docx

ssh2框架的一个用例实现

用例11.2乘务员执行发动机异常时调度员的安排

功能描述1

实现步骤2

1.连接数据库2

注意事项:

4

程序设计6

1.准备工作6

2.编写Dao层代码7

3.编写Service层代码8

4.编写Action层代码9

5.编写xml配置文件10

6.编写jsp代码11

附件:

12

1.main.jsp文件12

1.2实现效果13

为了帮助大家更好的完成用例的程序设计,我写了如下文档,该文档描述了一个简单的用例是如何用jsp实现的。

本用例采用struts2spring和hibernate框架实现,即ssh2框架。

大家如果有什么问题,欢迎和我讨论。

功能描述

主要的页面跳转如下图所示:

发动机异常调度安排图

特殊说明:

由于自己对于css的理解不是很深,可能在页面显示的效果会出现文字错位的情况,还请见谅。

实现步骤

1.连接数据库

点击Connection,选择mysql数据库。

会出现如下的对话框,需要填写ConnectionName该名字随意填写。

然后输入你的用户名密码,密码就是你的mysql数据库的密码。

点击TestConnection,如何该连接成功的连接到了数据库当中,就说明连接正常。

然后右键该连接,选择NewDatabase

右键bus_test选择ExcuteSQLFile就可以将数据库导入到navicat中了。

然后右键该连接,选择Refresh,再点击bus_test就可以看到里面的Tables了和各个用例所需要的数据库了。

注意事项:

老师给的数据库的默认用户名root密码为123456。

如果密码并不是123456,你需要在myeclipse中编辑hibernate.cfg.xml文件并设置自己的数据库密码(我的是111111):

打开MYSQL,你可以看到,ServercharactersetDbcharacterset,Clientcharacterset

Conn.Characterset都是utf8,只有保证你的机器的编码都是utf8,才可以保证在Dao层进行select查询时,得到正确的结果。

如果你的系统并不是utf8,你需要在你电脑中重新配置mysql

从开始菜单中,选择MySQLServerInstanceConfigWizard重新配置mysql

在选择字符集的那一步选择,然后下一步,逐步的就可以了。

当然重新配置完数据库,如果还是不行,你就需要将navicat中的那个connection删掉,重新新建一个。

程序设计

1.准备工作

第一步,将素材加入到项目中,也就是说需要将素材中的静态页面全部复制到Webcontent目录中(选择全部替换)。

并在素材中找到html文件,并将html文件的后缀名改成.jsp复制到Webcontent/common目录中。

也就是common目录中存放的都是前台需要显示的页面。

(见附件1.1)。

2.编写Dao层代码

下面是真正的要编写程序了,这也是整个的重点。

Entity层已经通过hibernate自动生成,而Dao层,Action层,Service层需要我们编写代码。

而Dao层是由两个部分构成的,也就是接口和实现,所有的实现写在Dao.impl这个包中。

Dao层的所有的接口写在Dao包中,它的结构如下图所示:

impl中存放实现。

右键Dao包,新建interface名字叫IUnusualBusDao,点击Finish

Dao层是ssh2框架中较为底层的内容,所有的有关数据库查询语句都是在Dao层来实现的,而entity层可以认为是将从Mysql中的查询结果返回的实体层,这里面的每一项都是和数据库中的一个数据表对应。

也就是将Dao层的结果返回给entity层。

在u.bus.Dao.IUnusualBusDao.java中填写具体的数据查询方法。

比如我只要实现一个方法,那就是queryBus()函数。

publicinterfaceIUnusualBusDao{

 

//保存人员

//获得所有人员

publicListqueryBus();

}

然后在Impl子包中添加类用来实现接口,相关代码如下:

publicclassUnusualBusImplextendsBaseDaoimplementsIUnusualBusDao{

publicListqueryBus(){

//TODOAuto-generatedmethodstub

Stringhql="fromUnusualBusascrewwherecrew.isDeleted='0'andcrew.reason='发动机异常'";

Listlist=super.executeQuery(hql);

returnlist;

}

}

3.编写Service层代码

Service层和Dao层的代码时大同小异的。

也是需要写接口和实现。

Service层主要是处理业务,相当于是一个代理,负责连接Action层和Dao层。

如果直接给Action层提供Dao层的内容,这么做不安全,而且ssh2框架也不允许你这样做。

我们使用GetEBus得到Dao层传递过来的数据。

新建接口,接口名:

IBusRoundExceptionManageService

publicinterfaceIBusRoundExceptionManageService{

publicListGetEBus();

}

在impl子包中,写相应的实现,这个比较简单,直接返回dao层的结果。

publicclassBusRoundExceptionManageServiceimplements

IBusRoundExceptionManageService{

privateIUnusualBusDaounusualbusdao;

@Override

publicListGetEBus(){

//TODOAuto-generatedmethodstub

returnunusualbusdao.queryBus();

}

}

4.编写Action层代码

注意事项:

无论是在Action层Service层,还是Dao层,都需要右键source,填写get和set方法。

Action的作用就是:

当用户点击某个连接或按钮时,需要调用你所设置的Action的相应方法,而这些方法中调用Action层中的service对象处理事务逻辑。

大部分的代码,可以参考LoginAction的代码。

大家可以从下面的代码看出,

packageu.action;

importu.service.IBusRoundExceptionManageService;

importu.vo.BusRoundExceptionManage;

importcom.opensymphony.xwork2.ActionContext;

importjava.util.List;

importu.entity.UnusualBus;

importmon.base.BaseException;

publicclassBusEngineErrorManageActionextendsBaseAction{

privatestaticfinallongserialVersionUID=1L;

publicListlist;

privateBusRoundExceptionManagemanage;

privateIBusRoundExceptionManageServiceerrorservice;

publicUnusualBusmybus;

publicUnusualBusbusinfo;

Listgoodlist;

publicStringshow()

{

if(errorservice.GetAll().isEmpty())

return"failed";

Listbuslist=errorservice.GetEBus();

ActionContext.getContext().getSession().put("buslist",buslist);

return"success";

}

publicStringshow1()

{

return"success";

}

publicStringshow2()

{

return"success";

}

publicStringshow3()

{

return"success";

}

 

}

5.编写xml配置文件

这里的注意事项:

所有的类名和变量名必须和实际的完全一致,否则系统会抛出各种异常。

以上我们已经写完了大部分的代码,大家还需要进行service,dao,action三层的依赖注入。

1.在src目录底下的applicationContext-action.xml中添加如下代码,这个service是action层的变量名。

在applicationContext-dao.xml中添加如下代码,beanid中的unusualbusdao就是在service层我所用到的代码。

这里需要指明其具体的实现的位置。

在applicationContext-service.xml中添加id为errorservice的部分,并且unusualbusdao是service层用到的变量名,需要在这里指明。

在struts.xml中,需要指明某个操作在Action层的实现方法。

这里面的action并不是真正意义上的action,你可以理解为一个代号。

一个标记,留着在jsp中调用,可以看到resultname实际上是你调用的相应的方法所对应的返回值,然后struts看到返回值之后就跳转到相应的页面中。

6.编写jsp代码

见附件1.1中所示,在main.jsp中

注意事项:

在main.jsp及其他的页面中如果你发现跳转之后没有任何的样式,说明你的css路径设置的有问题。

将里面的../css/main.css改成./css/main.css。

其中图片的设置也是如此。

在main函数中加入了一个超链接。

该超链接的作用是当点击该超链接时,去使用action的相应方法。

而BusEngineListManageAction在struts.xml中定义。

也就是说,当点击这个超链接时,会使用BusEngineErrorManageAction中的show方法,show方法返回"success",根据"success",跳转到engine_abnormal.jsp页面。

代码如下图所示:

urlaction="BusEngineListManageAction"/>">发动机异常

这里使用了struts标签,所以在jsp文件的开头需要添加相应的配置,代码如下,表示以s为前缀的标签为struts标签。

<%@tagliburi="/struts-tags"prefix="s"%>

页面跳转到engine_abnormal.jsp中

在相应的部分填写代码:

<%!

Listlist1;

%>

<%

Mapmymap=ActionContext.getContext().getSession();

list1=(List)mymap.get("buslist");

Iteratoriter=list1.iterator();

while(iter.hasNext())

{

UnusualBusmybus=iter.next();

%>

车号为<%=mybus.getBusId()%>于<%=mybus.getUnusualTime().toLocaleString()%>发生<%=mybus.getReason()%>


  • urlaction="orgAction"/>">按原计划运营

  • urlaction="orgLocalAction"/>">原地等待检修

  • urlaction="orgGoAction"/>">开往维修厂

  • <%

    }

    %>

    附件:

    1.main.jsp文件

    注意编码格式,每个jsp都要加上前三行。

    1.2实现效果

    自动跳转到该页面,然后用户可以选择三种方案:

    1按原计划运营,2.原地等待检修,3.开往维修厂。

    当点击按原计划运营时,显示

    当点击原地等待维修时,显示

    当点击开往维修厂时,显示

    我上面列了最简单的一个实例,实现了一个简单的用例,希望能够给大家提供一些启发。

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

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

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

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