Struts2中多个Plugin的有关问题 [已解决]
Struts2中多个Plugin的问题 [已解决]
在Struts2中的某些Plugin的使用是需要继承Plugin中的struts-plugin.xml中定义的package的,比如在JsonPlugin中,如果使用就需要继承如下定义的package:json-default
如果使用AjaxFileUpload的plugin的话就需要继承如下的package:ajaxfileupload-default
我的问题是,如果我的一个package同时需要这两个plugin的时候,我应该怎么来写我自己的package?好像没法同时继承两个吧?
Readonly的回复很有技巧啊~~~
在Struts2中的某些Plugin的使用是需要继承Plugin中的struts-plugin.xml中定义的package的,比如在JsonPlugin中,如果使用就需要继承如下定义的package:json-default
<package name="json-default" extends="struts-default"> <result-types> <result-type name="json" class="com.googlecode.jsonplugin.JSONResult"/> </result-types> <interceptors> <interceptor name="json" class="com.googlecode.jsonplugin.JSONInterceptor"/> </interceptors> </package>
如果使用AjaxFileUpload的plugin的话就需要继承如下的package:ajaxfileupload-default
<package name="ajaxfileupload-default" extends="struts-default"> <result-types> <result-type name="rawtext" class="com.davidjc.ajaxfileupload.result.RawTextResult"/> </result-types> action name="uploadprogress" class="com.davidjc.ajaxfileupload.action.UploadProgress"> <result name="success" type="rawtext"/> </action> </package>
我的问题是,如果我的一个package同时需要这两个plugin的时候,我应该怎么来写我自己的package?好像没法同时继承两个吧?
1 楼
Readonly
2008-04-17
不同的package只是提供了一些默认的result-types, inteceptors设置而已,你完全可以自己把这2个package里面的这些设置复制到你的package下。
2 楼
cscs31
2008-04-17
Readonly那种做法,应该从代码级是可以的,但是感觉这就似乎破坏了plugin的意义,变成不可插拔的插件了,所以我觉得从架构级似乎有点问题,如果plugin出了新的版本还需要更新自己的代码,这也是个问题。
3 楼
Readonly
2008-04-17
你不妨写一个issue给struts2开发团队,允许extends里面可以逗号分割使用多个plugin定义的package
4 楼
vip01
2008-04-18
把action的classs配到spring里面
不用类型的action放到对应的package下
这样一个action可以用不同的名字发布在多个package下
不用类型的action放到对应的package下
这样一个action可以用不同的名字发布在多个package下
5 楼
cscs31
2008-04-20
研究了源代码,分析结果在我的Blog里
http://hi.baidu.com/chinastruts/blog/item/aaf06e0e73c374e237d12260.html
http://hi.baidu.com/chinastruts/blog/item/aaf06e0e73c374e237d12260.html
6 楼
movingboy
2008-04-21
Readonly 写道
你不妨写一个issue给struts2开发团队,允许extends里面可以逗号分割使用多个plugin定义的package
Readonly的回复很有技巧啊~~~
7 楼
xiaohun2008
2008-04-21
<package name="ajaxfileupload-default" extends="json-default">
这就行了
这就行了