我们目前做的项目使用的就是这种方式,今天比较有空,就写了个demo演示下这个功能。所谓的零配置其实并不是没有配置文件,只是约定大于配置而已,约定做好了,整个项目都会清晰明了很多。详细的约定在struts2-spring-plugin-xxx.jar里面的struts-plugin.xml中有说明。
今天在测试的时候,我struts2-spring-plugin这个jar用的是最新版的,也就是2.3.16.3,按我们项目中的配置完后,请求一直有问题,我没有具体看官方文档,对比了下版本2.1.8.1,struts-plugin.xml中的内容变化挺大,估计配置有变化,这个问题有时间看官过方文档后再更新过来吧。
2.1.8.1版本的struts-plugin.xml如下:
2.3.16.3版本的struts-plugin.xml如下:
目测新版本的会更加灵活。
这个整合很简单,我只是让spring去管理了action,重点是struts.xml的配置,如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.action.extension" value="action" /><!-- struts处理的请求后缀 --> <constant name="struts.enable.SlashesInActionNames" value="true"></constant> <package name="zuidaima" extends="struts-default"> <action name="*_*" class="{1}Action" method="{2}" > <result name="default">${target}</result> <result name="redirect" type="redirect">${target}</result> <result name="redirectAction" type="redirectAction">${target}</result> </action> </package> </struts>
说明下:在这个示例中,action规定的请求格式是action的名称+“_”+请求的方法名称,比如请求的是UserAction的getUser方法,则请求地址为:user_getUser.action
大家如果想了解更多的配置,详细看下struts-plugin.xml中的常量说明。
项目截图:
开发环境:eclipse kepler + jdk7 + win7 64 + maven