步骤:
1、下载Struts2的开发包。
2、创建Web项目。
3、导入需要的jar包到项目里。
4、在web.xml文件里面配置struts2的核心控制器,也就是一个过滤器。
5、编写Action类。
6、编写struts.xml配置文件。
7、将项目加到服务器中,用浏览器访问。
1、下载Struts2的开发包
访问地址:https://struts.apache.org/,点击Download进入下载页面
会出现一下页面:
Full Distribution:这个压缩包包含下面所有的内容,下载这个其他的就不用下载了。
Example Application:Struts2的案例应用。
Essential Dependencies Only:基本依赖包,里面是Struts2必须的依赖包,里面只有9个必须的jar包。
All Dependencies:所有的依赖包,包含上面的基本依赖包,里面有一百多个jar包。
Documentation:Struts2的开发文档。
Source:源码。
这里下载基本依赖包,只有4MB。
2、创建Web项目。
用Eclipse创建一个叫Struts2Demo的Web项目。
这里我们选择的版本是2.5,如果创建3.0以及以上版本在WebContent——>WEB-INF目录下没有web.xml文件。
3、导入需要的jar包到项目里。
将上下载的9个jar包复制到WebContent——>WEB-INF——>lib目录下面
4、在web.xml文件里面配置struts2的核心控制器,也就是一个过滤器。
这个struts2控制器也就是在web.xml中配置的一个过滤器。
前端控制器的路径为:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
具体配置代码:
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>struts2</filter-name> 7 <url-pattern>/*</url-pattern> 8 </filter-mapping>
5、编写Action类。
Action类是Struts用来处理浏览器发过来的请求,封装数据,响应请求的,需要自己编写。
编写一个HelloAction类,当访问这个类的时候,会向控制台输出Hello Struts2!。
Action类代码:
1 package com.struts.test; 2 3 public class HelloAction { 4 public String sayHello() { 5 System.out.println("Hello Struts2!"); 6 return null; 7 } 8 }
6、编写struts.xml配置文件。
struts.xml配置文件要是不会写可以下载官网案例应用,用里面的模板做些修改就行。
struts.xml配置文件编写要求:
a、文件名一定要是struts.xml。
b、放在src目录下。
配置文件格式
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="action名" class="访问的action类的路径从包名开始" method="执行的方法名">
</action>
</package>
</struts>
实例
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 <struts> 6 <package name="default" namespace="/" extends="struts-default"> 7 <action name="hello" class="com.struts.test.HelloAction" method="sayHello"> 8 </action> 9 </package> 10 </struts>
7、将项目加到服务器中,用浏览器访问。
右击添加的tomcat服务器——>Add and Remove
将我们的项目添加到服务器里面。然后启动服务器。
在浏览器输入:http://localhost:8080/Struts2Demo/hello
控制台显示结果:
有个好玩的事:
就是我第一次搭建的时候老是报错:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
我检查了web.xml文件,检查jar包,检查struts2版本等等都没有问题, 最后我把tomcat服务器删了又重新加进去就好了。。。。。。。。。
不知道为什么,但这里说一下怎么解决 这可恶的java.lang.ClassNotFoundException问题吧:
异常原因:
就是配置的那个struts.xml文件找不到那个StrutsPrepareAndExecuteFilter类
解决方法:
1、查看struts.xml文件配置的对不对,就是这句话<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>,里面那个类的路径你可以在Libraries的struts2-core-版本.jar包里面找,找到StrutsPrepareAndExecuteFilter这个类后右击Copy Qualified Name 然后粘贴进那个<filter-class>标签里面就保证不会错了。但是要注意:粘贴的全类命最后会有个.class,删掉就好了
2、注意struts2的版本,2.3和2.5的那个类路径不一样,用上面2的方法复制就不会出现问题。
3、如果你都检查了没问题,那么删了tomcat服务器,重启eclipse,重新来一遍再试试。有可能他们矫情了。