struts-plugin插件包的问题

用ssh框架也有将近1个月了,现在有一些疑问,希望高手帮我解决一下。主要是struts-plugin插件的问题。

下载struts2.3.4.1完整包,里面有大量的插件包,这些包我也或多或少的使用过,但当初都是分开使用的,没使用struts2.比如sitemesh,json等。但我现在的问题是,如果我使用struts2-json-plugin的时候,是不是就不需要json包了。我看网上很多的做法,也有引入了的,但一些人的做法,就没有引入。我现在就迷惑了。
还有版本问题,是不是struts2.3.4就必须用struts2.3.4-plugin版本匹配的插件。
最后就是一个问题,我以前编写struts2代码都是对所有的url进行拦截,请求action也没有后缀,比如showNews,不是showNews.action。现在问题来了,当我使用fckeditor的时候,单独使用都没什么问题,但文件上传就出现权限不够。原因我知道。我用网上他们说的方法重新写一个filter来拦截这个请求,但还是没解决。如果把url拦截改成*.action也不行,因为我的action全部没后缀。

希望能得到解答一下。

1、struts2配置加载顺序
1.1、struts-core里的 struts-default.xml-------------->提供默认配置 比如默认的Result、more的拦截器等
1.2、struts plugin里的 struts-plugin.xml ------------->提供插件需要的配置,比如spring插件 会修改struts.objectFactory 为spring(org.apache.struts2.spring.StrutsSpringObjectFactory)
1.3、加载classpath中的我们自定义的struts.xml

struts plugin 提供给我们扩展struts2的功能,比如使用spring容器管理struts2组件(默认struts2也是一个IoC容器)、提供json插件 方便序列化数据为json字符串等。

比如你使用spring这个插件,这个插件是依赖spring的,因此就需要spring的jar包; 相当于你间接依赖spring包;

比如你使用json这个插件,这个插件是依赖json-lib等jar包,因此就需要json-lib等jar包; 相当于你间接依赖json-lib等jar包;

1.json包需要的
2.建议使用maven构建项目,自动管理包的依赖关系。
3.为什么不把所有action加上后缀呢?

import net.sf.json.JSONObject;
一般在早期版本如果希望返回json,使用的jar命名空间是上面那个
但在使用struts2-json-plugin 导入命名控件不一样了
import com.googlecode.jsonplugin.annotations.JSON;
2个包都能方便产生json格式是字符串
如果使用了 注解形式的
也就是action中
@JSON(name="newName")
public String getName() {}那么需要struts2-json-plugin
如果有方法就是早期版本的json,
例如:
public String demo()
{
//response.write(json);
return null;//
}
这2中方式都能实现json,看个人爱好,并不能说使用了用struts2-json-plugin
就不需要第三方的json包了
这个看个人编码习惯,比如:团队中返回json的方法,有些老程序员,就直接用老版本的,或者用新版本的,2中都能实现返回json的action,只不过看个人编码习惯而已。
对于楼上action不加后缀,貌似struts常量配置里面可以配置拦截什么后缀的请求。

这个就相当于struts2,spring。hibernate,都提供了2中配置方式
1.注解,2.xml形式,2中都能配置,但如果需要注解就需要导入额外的包,但可以2个混着用,既有配置文件,又有注解。。
希望能你能明白