搭建struts2开发环境
官网下载struts2
当前使用版本 struts-2.3.34-all.zip
解压得到struts-2.3.34文件夹,进入apps可以查看例子
解压struts2-blank.war
struts-2.3.34\apps\struts2-blank\WEB-INF\lib目录下可以找到基本的使用jar包,拷贝到所创建工程中
struts2-core-2.3.34.jar
xwork-core-2.3.34.jar
ognl-3.0.21.jar
freemarker-2.3.22.jar
commons-fileupload-1.3.2.jar
commons-logging-1.1.3.jar
在src下编写struts.xml配置文件
可以在struts-2.3.34\apps\struts2-blank\WEB-INF\classes下找到参考写法
<?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>
</struts>
在web.xml文件中加入Struts2 MVC框架启动配置
在struts1.x中,struts框架是通过servlet启动的
在struts2中,struts框架是通过filter启动的
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
启动项目报错:
Dispatcher initialization failed
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency!
at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:169)
... 34 more
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool
继续添加jar
javassist-3.11.0.GA.jar
commons-io-2.2.jar
commons-lang3-3.2.jar
当package继承了struts-default,才能使用struts2的核心功能
第一个struts2应用
<?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="itcast" namespace="/test" extends="struts-default">
</package>
<package name="it" extends="struts-default">
<action name="helloworld" class="ren.draven.action.HelloWorldAction" method="execute">
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
</struts>