我們知道通常情況下,Struts2是通過struts.xml配置的。但是隨著系統規模的加大我們需要配置的文件會比較大,雖然我們可以根據不同的系統功能將不同模塊的配置文件單獨書寫,然后通過<include>節點將不同的配置文件引入到最終的struts.xml文件中,但是畢竟還是要維護和管理這些文件,因此也會給維護工作帶來很大的困擾。為了解決這個問題,可以考慮使用struts2的注解。實際上struts2中最主要的概念就是package、action以及Interceptor等等概念,所以只要明白這些注解就可以了。
如果希望使用struts2的注解功能,必須使用一個包struts2-convention-plugin-2.1.8.1.jar,我使用的環境是struts2.1.8.1。如果你使用了不同的版本,找名字就行。
在以上所述的jar文件中定義了一系列的注解,其中比較主要的是:
實際上,struts2中的主要注解就是這些,當然了,還有上面提到的@interceptorRef和@exceptionMapping;基本上,掌握了這些注解就可以了。
但是如果想讓這些注解真正工作,必須在配置文件增加幾個常量的定義:
- struts.convention.default.parent.package:這個常量表示缺省的包名是什么,因為在實際應用中,我們常常定義一個缺省的包,這個包中定義了一大堆的攔截器等等,然后其他的包繼承自這個包。這個常量可以配也可以不配;
- struts.convention.package.locators:這個常量表示你的action類的java包的包名的后綴是啥:比如action。這個常量也可以不配;
- struts.convention.package.locators.basePackage:這個常量表示你的action類的java包package的名字是啥;這個常量也可以不配;
以上三個常量都是輔助作用的,為了讓注解真正的工作,必須在配置文件中增加<package>節點的配置,至少是<package name="myPackage" extends="struts-default" />,這樣注解就可以使用了。