MYECLIPSE三大框架SSH(STRUTS2+SPRING+HIBERNATE)快速整合开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

---12---MyEclipse7.5快速半手工开发SSH2(Struts2+Spring+Hibernate)应用1.新建一个WebProject,命名为:struts2_template2.导入样例程序struts2-blank-2.1.8.war中lib下的包(暂时只需要这几个,网上提醒不能随便加包!):commons-fileupload-1.2.1.jarcommons-io-1.3.2.jarfreemarker-2.3.15.jarognl-2.7.3.jarstruts2-core-2.1.8.jarxwork-core-2.1.6.jar如果出现类似Unabletoloadconfiguration.-bean-jar:file:的错误,一般可能是导入的jar包有问题了。但是,当你更正了问题之后错误还出现!这是因为你没有将发布到tomcat中的应用移除干净!!方法是:退出MyEclipse,到workspace文件夹中,找到原来的工程文件夹,删除之;然后再到workspace的.metadata\.me_tcat\webapps文件夹中,找到相应的发布文件夹也删除之,然后重新启动MyEclispse就可以了。提醒:如果你做了许多工程,后来删除了。。。。其实都还在.metadata/.me-tcat/webapps下面!!!如果他们有错,就会影响到你后来的工程!3.在web.xml中加入支持struts2的filter,并将mapping设为/*Filter的名字叫“struts准备与执行”,就是strutsPrepareAndExecute,敲入前面几个字母系统就会找到了。--------------------到此为止,我们的工程已经可以支持struts2了。下面是实验--------------4.在src目录中拷贝一个struts.xml作为书写配置的起点(注意!和以前版本不同,是src目录!)一个最简单的配置文件包括下面内容:?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=struts2_templateextends=struts-defaultactionname=HelloWorldclass=example.HelloWorldresultname=gotoIndex/index.jsp/result/action!--Addactionshere--/package!--Addpackageshere-----12---/struts其中重要的其实就一个:action的执行和导航。上面的actionname=HelloWorldclass=example.HelloWorld表示,当从URL请求名为HelloWorld的action时候,实际执行的是example.HelloWorld类。附注:类的分包:在src下面建包即可。resultname=gotoIndex/index.jsp/result表示当HelloWorld返回字符串“gotoIndex”时候,跳转到/index.jsp。5.下面建一个实现上面action的类。先在src下面建一个package,名为example;下面建一个HelloWorld类,继承ActionSupport(在com.opensymphony.xwork2中)里面就一个函数:publicStringexecute()throwsException{System.out.println(Hellofrom);returngotoIndex;}6.运行一下试试,访问URL为/HelloWorld.action浏览器还是显示index.jsp,因为这个action自动跳到index.jsp了,但console窗口却出现了提示,说明该action已经运行。=========好了,我们的action已经配置成功了===========7.下面我看看表单的提交;表单当然是放在jsp文件中。我们将jsp文件放到WebRoot下面(!这才是网站的根目录!)。作为实验,我们建一个子目录login来存放我们的样例表单login.jsp;(遗憾的是现在还没有理想的可视化的编辑struts2表单的IDE)一个最基本的jsp文件如下:%@pagecontentType=text/html;charset=UTF-8%%@taglibprefix=suri=/struts-tags%htmlbody/body/html也就是说,最上面两行最关紧要!拷下即可。然后,使用DreamWeaver之类,编写相应的表单:---12---下面是使用Eclipse自动生成的带表单的一个简单页面:------------------------------------------------------------------------!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//ENhtmlheadtitle=keywordscontent=keyword1,keyword2,keyword3metahttp-equiv=descriptioncontent=thisismypagemetahttp-equiv=content-typecontent=text/html;charset=UTF-8!--linkrel=stylesheettype=text/csshref=./styles.css--/headbodyformname=f1id=f1action=method=posttableborder=0trtdLogin:/tdtdinputtype=textname=loginid=login/td/trtrtdPassword:/tdtdinputtype=passwordname=passwordid=password/td/trtrtdcolspan=2align=centerinputtype=submit/td/tr/table/form/body/html-----------------------------------------------------------------------------我们做一下修改即可将它变成struts2的jsp表单页面:(1)第一行替换成struts2要求的那两行%@...(2)替换所有表单字段。例如:formname=f1id=f1action=method=post替换成:s:formaction=Login注意:这里的action=Login指明要提交给一个名为Login的action---12---inputtype=textname=loginid=login换成:s:textfieldname=login/inputtype=passwordname=passwordlabel=password替换成s:passwordname=password/inputtype=submit替换成:s:submit/惊奇小发现:我在MyEclipse7.5中发现一个WebPageEditor,用这个编辑器可以插入struts2的标签!虽然还很是primitive,但总是好多了,。。。好了,改名存盘为login.jsp。8.我们的action还没有呢!好办,将HelloWorld.java拷贝粘贴一个出来Login.java:packageexample;importcom.opensymphony.xwork2.ActionSupport;publicclassLoginextendsActionSupport{publicStringexecute()throwsException{returntoIndex;}}再做这样一些工作:(1)把表单字段写出来:privateStringlogin;privateStringpassword;(2)菜单Source-GenerateGetters&Setters生成所有的getter和setter方法。注意了啊!看似简单,实际上内涵极为深奥:这里的setter可是struts2“注入”调用的(当我们执行execute()的时候,表单字段已经设置好了!)(3)修改执行函数,把表单的输入打印到控制台(console,这样打印没什么用处,只是试验一下而已):publicStringexecute()throwsException{System.out.println(login+:+password);returngotoIndex;}9.好了,现在东西都有了,只要配置一下struts.xml,就可以让表单login.jsp提交给Login.action了:拷贝一份原来的action,修改一下:actionname=Loginclass=example.Loginresultname=gotoIndex/index.jsp/result/action10.部署并运行看看---hmm,还可以,console打印出来输入的值,页面跳到index.jsp了。。。但是!---12---好像输入表单本身的现实有些怪!为什么呢?看看页面源码:怎么多出来许多table标签呢?-----原来,默认模式下,struts2会将你的form标签自动加上table标签!可是我们已经做好了table了,美工过了!对策:简单:类似下面那样加上这样theme属性即可:s:textfieldname=logintheme=simple/要求struts使用simple主题,它就不多事了。11.数据的显示:Struts将action处理的数据(包括表单提交给action的数据)和应用(Application)范围内的数据都存储在一个叫做“值栈”(valueStack)的地方;有很多种方法可以从这里取出值来:我们将struts.xml中Login.action的配置改一下,让它转到logok.jsp页面:actionname=Loginclass=example.Loginresultname=gotoOk/login/logok.jsp/result/action然后做一个logok.jsp,放到WebRoot/login目录下,其内容主要是在body标签中间,加上:s:textname=login/hr/s:propertyname=login/hr/${login}hr/这样3行代码;运行一下试试。可以看到,三种方法都可以将输入的用户名显示出来。12.老革命的老问题:汉字问题试试输入一个汉字,显示出来的是乱码。解决:方法很多;不过既然我们要整合Spring,不如现在就使用Spring的解决模式:13.加入Spring支持:在工程名上点鼠标右键,在菜单中选择“MyEclipse”-“AddSpringCapabilities”;选中所有Spring开头的包;选择“拷贝支持包到lib目录”;另注意:(1)注意将applicationContext.xml放到WEB-INF/目录下;(2)增加一个listener

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功