服务于区块链开拓者

www.zhidnet.com

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

不晓得是不是struts2版本的问题,小的初学,在使用struts2.1.6中遇到不少问题,不知道大家有没有遇到

 

 

1.与struts2.0.14不同,要想正常使用struts2.1.6,至少需要6 个jar包:

struts2-core-2.1.6.jar

freemarker-2.3.13.jar

commons-logging-1.0.4.jar

ognl-2.6.11.jar

xwork-2.1.2.jar

commons-fileupload-1.2.1.jar

2. 今天在使用零配置( zero configuration)的时候按照struts2.0.14中那样在sturts2-core-2.0.11中org.apache.struts2.config下找了半天都没有那个包,上网才晓得“struts2.1.6中还需要引用struts2-convention-plugin-2.1.6.jar文件,而且注释类的包也变了(又增加了一些新的注释类),Struts2.0.14中的注释类在org.apache.struts2.config包中,而struts2.1.6的注释类在 org.apache.struts2.convention.annotation包中。除此之外,有些注释的属性名也变了,如Result注释在 struts2.0.14中有一个value属性,表示一个要转入的URL,而

Struts2.1.6的Result注释中使用location属性代替了value属性(不再有value属性了),但它们的使用方法相同。”

3.记得在struts2.0.14中,@result中type为类名,然后利用反射机制装载这个类例如type=org.apache.struts2.dispatcher.ServletRedirectResult.class,而struts2.1.6中type应填入名称如type="redirect",否则会报错。

4.在action包设置的时候<package name="action" extends="struts-default" namespace="/">如果缺省namespace就会报错,找不到result。这种错误一定要注意,通常这种错误很隐蔽,提示找不到result对应该资源文件,一般的考虑是struts.xml加载失败或者是web.xml配置错误等问题很少会想到是namespace的错误。所以这种错误一定要注意。

5.在一个action返回result访问另一个package中的action时:<result  type="chain">/xxx/test</result>来访问<action name="test" namespace="/xxx"会报错,找不到这个action,但是如果改成

<result type="chain">
   <param name="actionName">test</param>
   <param name="namespace">/xxx</param>
   </result>

这种方法来访问就没有问题。

以上是我自己使用的结果,不知道大家遇没遇到同样的问题,是不是struts2.1.6版本的问题呢

 

posted on 2013-03-27 20:42  知点网  阅读(199)  评论(0编辑  收藏  举报