在跟着视频学习的时候,视频中的struts2的版本为2.0.11,在搭建环境的时候需要5个jar包,为:commons-logging-1.0.4.jar , freemarker-2.3.8.jar , ognl-2.6.8.jar , struts2-core-2.0.11.jar和xwork-2.0.4.jar。本人下载的struts2的版本为2.1.8.1 ,在搭建环境的时候有6个jar包,为:commons-logging-1.0.4.jar , freemarker-2.3.15.jar , ognl-2.7.3.jar , struts2-core-2.1.8.1.jar , xwork-2.1.6.jar和commons-fileupload-1.2.1.jar。这些也不用记,但是对于新手来说非常困难,不知道要导入哪个jar包,其实很简单,在官网下载下来的压缩文件解压后里面都有例子(apps目录中),其中有一个struts2-blank-2.1.8.1.war文件,用rar打开,把里面的jar文件(WEB-INF/lib/ )导入即可。
使用eclipse写struts2时遇到一个问题,如下:
com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn 警告: Could not find action or result There is no Action mapped for namespace / and action name login. - [unknown location] at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178) at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61) at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39) at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)
相信大家都知道struts.xml文件找不到了,排除拼写错误之外,这个文件必须放到WEB-INF目录下的classes目录中(写.java文件时会自动编译到classes目录中),然而使用eclipse建项目时,有个默认输出的是build/clasaes中,所以在编译部署后classes目录没有在WEB-INF目录下,就是这个原因产生了上述问题,既然知道了原因,自己就可以解决了吧,在此就不必多说了。