论坛首页 Java企业应用论坛

Struts2中多个Plugin的问题 [已解决]

浏览 4560 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-17  
在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?好像没法同时继承两个吧?
   发表时间:2008-04-17  
不同的package只是提供了一些默认的result-types, inteceptors设置而已,你完全可以自己把这2个package里面的这些设置复制到你的package下。
0 请登录后投票
   发表时间:2008-04-17  
Readonly那种做法,应该从代码级是可以的,但是感觉这就似乎破坏了plugin的意义,变成不可插拔的插件了,所以我觉得从架构级似乎有点问题,如果plugin出了新的版本还需要更新自己的代码,这也是个问题。
0 请登录后投票
   发表时间:2008-04-17  
你不妨写一个issue给struts2开发团队,允许extends里面可以逗号分割使用多个plugin定义的package
0 请登录后投票
   发表时间:2008-04-18  
把action的classs配到spring里面
不用类型的action放到对应的package下
这样一个action可以用不同的名字发布在多个package下
0 请登录后投票
   发表时间:2008-04-20  
研究了源代码,分析结果在我的Blog里
http://hi.baidu.com/chinastruts/blog/item/aaf06e0e73c374e237d12260.html
0 请登录后投票
   发表时间:2008-04-21  
Readonly 写道
你不妨写一个issue给struts2开发团队,允许extends里面可以逗号分割使用多个plugin定义的package

Readonly的回复很有技巧啊~~~
0 请登录后投票
   发表时间:2008-04-21  
<package name="ajaxfileupload-default" extends="json-default"> 

这就行了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics