Struts2框架想要应用于Web项目中,需要在Web项目的web.xml文件中进行一定的配置,才能在Web项目使用Struts2框架。
Struts2使用的是一个过滤器:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,这个过滤器会将前端的Http请求转发至Struts2框架中,关于此过滤器,在后面的文章用会介绍。
1、Struts2在web.xml文件中的配置如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.action.extension</param-name>
<param-value>action,,</param-value> <!-- 指定访问的扩展名,默认的是action可以替换成其他如:do -->
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.do</url-pattern> <!-- 此处使用*.do是因为拦截器除了请求url外,不应该拦截其他的资源,如图片,js文件等 -->
</filter-mapping>
在web.xml中配置好上述代码后,接着进行Struts2相应的配置。
2、导入jar包,导入哪些jar包呢?最简单的方式就是在Struts的文件夹中找出实例代码的jar包即可:
我导入的是:struts-2.3.15.1-all\struts-2.3.15.1\apps\struts2-blank\WEB-INF\lib下的jar包放到项目的lib中:
注:各个版本的Struts2的jar可能不都一样,我当前使用的是struts-2.3.15.1版本。
3、在web项目中,在path根路径下,新建一个名为struts.xml文件:
struts.xml文件内容如下:
<?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>
4、新建一个Action类,并将其配置到struts.xml文件中:
新建一个TestAction类:
package com.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
public class TestAction extends ActionSupport {
private static final long serialVersionUID = 1L;
@Override
public String execute() throws Exception {
System.out.println(TestAction.class.getName() + " 执行了...");
return SUCCESS;
}
}
方法格式如下:
public String methodName(){
............................
}
注:该方法的的权限是public,返回值是String(根据此返回值去匹配视图),方法名可以任意(在这里定义execute有些特殊,后面的章节会说明),并且方法签名必须为空,public String methodName(int i);这样是不允许的,为何呢?因为框架通过反射执行方法。
将TestAction类配置到struts.xml文件中:
<?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" extends="struts-default">
<action name="test" class="com.struts2.action.TestAction"></action>
</package>
</struts>
至于struts.xml文件<struts>标签中的代码是什么,有什么作用,在后面的章节中会说明。
5、配置好上述内容后,最后一步,进行测试:
在浏览器中输入:http://localhost/struts2_test01/test.action,在Myeclipse中打印了:
说明Struts2的简单配置成功了。