MyEclipse8下struts2开发例程及解析1文档格式.docx
《MyEclipse8下struts2开发例程及解析1文档格式.docx》由会员分享,可在线阅读,更多相关《MyEclipse8下struts2开发例程及解析1文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
![MyEclipse8下struts2开发例程及解析1文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/4/decabfe4-cf52-40ff-9165-92a47352b834/decabfe4-cf52-40ff-9165-92a47352b8341.gif)
Struts2框架核心类库
xwork-2.x.x.jar:
XWork类库,是Struts2的基础
ognl-2.x.x.jar:
对象图导航语言,用于读写对象属性
freemarker-2.x.x.jar:
struts2的UI标签的模板
commons-logging-1.1.x.jar:
ASF出的日志包,struts2使用它来支持Log4J和JDK的日志记录
commons-fileupload-1.x.x.jar:
文件上传组件,Struts2.1.6版本以上必须加入此文件
(2)编写Struts2的配置文件
(3)在web.xml中加入Struts2MVC框架启动配置
说了这么多,幸运的是,在MyEclipse8中,不需要手动做任何工作,就可以包括Struts2框架支持,步骤如下:
(1)创建一个webproject:
MyStruts2
(Myeclipse8.5,在New一个WebProject的时候提醒说:
"
Compilercompliancelevelofproject**shouldbe*.*.Yourcurrentworkspacedefaultis6.0.Doyouwanttouseacustomsettingforyourproject?
,大概意思是说该项目的编译器版本是*.*(5.0),而workspace当前的默认版本是6.0,是否希望为当前的项目应用一个自定义的设置。
为了以后不再出现,可以点击此对话框的Openworkspacecompilersettings或者是依次点击Window→Java→Compiler,在右侧Compilercompliancelevel中设置为相应版本即可。
这里的编译器版本建议最好是跟你代码的版本对应,不然由于引用等问题会出现兼容性错误)
(2)为工程添加Struts2框架支持,在工程名MyStruts2上右击,选择“MyEclipse/AddStrutsCapabilities...”
(3)在弹出的对话框中选择,Struts2.1
(4)点击完成后,可以看到项目目录中多了Struts2CoreLibraries文件夹,同时src自动生成了struts.xml文件
生成了一个空的struts.xml文件:
<
?
xmlversion="
1.0"
encoding="
UTF-8"
?
>
!
DOCTYPEstrutsPUBLIC"
-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN"
"
http:
//struts.apache.org/dtds/struts-2.1.dtd"
struts>
/struts>
此外:
Web-INF下的web.xml中多了以下几行(加入Struts2MVC框架启动配置):
filter>
filter-name>
struts2<
/filter-name>
filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
/filter-class>
/filter>
filter-mapping>
url-pattern>
*.action<
/url-pattern>
--注:
应该将*.action改为/*,才能支持struts2标签-->
/filter-mapping>
/web-app>
此时,运行tomcat服务器,在浏览器中输入:
//localhost:
8080/MyStruts2/,应该能够正确显示页面,表明添加Struts2后,没有引起冲突。
总结:
在MyEclipse8中对一个项目中添加struts2支持方法非常简单,只需要进行简单设置,不用手动创建配置文件。
2.struts2简单用例
示例内容:
添加一个action,在其中处理数据,并将结果在页面上进行显示。
2.1添加一个页面,用于跳转到的位置,如result.jsp,将页面放在WEB-INF/pages/目录下,是为了保证安全,不让用户直接输入网址进入。
2.2添加action,在struts.xml源文件中右击鼠标,选择MyEclipes/NewAction...
在新弹出的“NewAction”对话框里新建一个Package,如下图所示
说明:
其中Package的name,相当于java类中的package,而Namespace是一个路径,与Action名称一起组成action的路径,在页面输入时要添加Namespace的路径。
继续添加Action的Name,Class以及Results,如下图所示:
注意:
添加Results时,类型选默认,不能选redirect,否则action将不对给页面传参数。
当然,如果需要传参,也可以通过在路径后面添加参数的方法把参数带上(见传智播客struts2.1视频教程6),如/WEB-INF/pages/result.jsp?
name=${username}。
实际上,这一步修改了struts.xml文件,即帮我们添加了如下代码:
packagename="
myactions"
namespace="
/mypath"
extends="
struts-default"
actionname="
output"
class="
com.gzzzz.OutputAction"
resultname="
success"
/WEB-INF/pages/result.jsp<
/result>
/action>
/package>
另外,上一步给我们添加了一个Output.java文件,包括OutputAction类
2.3添加代码逻辑操作,进入OutputAction类:
publicclassOutputActionextendsActionSupport{
privateStringMsg;
//添加一个变量
publicStringgetMsg(){
//添加getter
returnMsg;
}
/**
*@return
*/
publicStringexecute(){
//TODOAuto-generatedmethodstub
Msg="
results:
+(10+20);
//逻辑运算
returnSUCCESS;
}
2.4在result页面对msg进行显示
body>
${msg}
//EL表达式
/body>
EL表达式的变量名,要与Action中的getMsg函数名要对应(即将Msg变为msg),而与相关变量名不必保持对应,虽然我们通常这样做。
OK,大功告成!
在浏览器出输入:
8080/MyStruts2/output.action
很不幸,出错了
还记得我们前面提到的Namespace的作用么?
哦,明白了
输入改为:
8080/MyStruts2/mypath/output.action
如下,所示,看到了我们想要的结果
参考资料
1.传智播客struts2.1视频教程
2.《javaweb开发技术大全》
MyEclipse编译不了的解决办法:
这两天MyEclipse不编译了,无论怎么更改保存,classes目录下都是空的.
在网上找了很多文章,总结如下:
MyEclipse不编译解决1.确保project->
buildautomatically已经被选上.
MyEclipse不编译解决2.如果选上了,也不好使,使用这一招:
project->
clean..->
选第2个cleanselectproject,勾上startbuildimmediatelly
MyEclipse不编译解决3.删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置MyEclipse为保存时编译,然后在保存的时候就可以自动编译了
MyEclipse不编译解决4.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.
MyEclipse不编译解决5.想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如TotalCommander。
此时编译也不会通过,在problems下可能会提示“con'
'
tdeleteclasses……”。
关掉其它程序重新编译即可。
MyEclipse不编译解决6.还有种情况是remove掉JRESystemLibrary,重新导入即可编译。
但是什么原因导致的还不清楚。
MyEclipse不编译解决7.把buildpath中所有包都remove掉。
然后又addjars,addlibraries把需要的加进去,居然又开始编译了。
。
MyEclipse不编译解决8.project->
properties->
javabuildpath->
source->
.../WEB-INF/src的outputfolder不要默认,编辑让它指向../WEB-INF/classes
然后重新点击build工程即可自动编译。
我的问题出在这里,我把这个编译目录给误删了
MyEclipse不编译解决9.再就是最重要的要看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了
最开始的时候,我只找到了前面7个方法,但是他们都没有解决我的问题.无意中我打开了"
Problems"
标签,发现里面说缺少work目录,手工加上,然后刷新项目就可以了.
最后两个是我在写这个总结的时候发现的.特别是第九条,对使用CVS进行版本控制的项目比较有用.
.classpath这个xml文件要仔细看
MyEclipse不编译的解决方案就是这些了,希望对你有帮助。