随笔 - 312, 文章 - 14, 评论 - 1393, 引用 - 0
数据加载中……

Struts2.1.6测试小记

本文为原创,如需转载,请注明作者和出处,谢谢!

    Struts2.1.x终于推出正式版了,迫不急待地下了试试(读者可以从http://struts.apache.org/download.cgi#struts216下载)。从这个版本所带的jar包上看丰富了很多。很多jar包的版本也有所提升。
    下载后按着Struts 2.0.14版的方法进行配置,将我以前做的一些程序移植到Struts2.1.6上,启动Tomcat,晕晕,竟然抛出异常说无法装载org.apache.struts2.dispatcher.multipart.MultiPartRequest,看一下异常信息,提示没找到org.apache.commons.fileupload.RequestContext类,但在struts2.0.14中并不需要这个类。于是搜索struts2.1.6带的jar包,发现RequestContext类在commons-fileupload-1.2.1.jar包中,但struts2.0.14并没有这个包。可能是struts2.1.6对文件上传功能的改进,因此,要想正常使用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
    要注意的是,Struts 2.1.6的最小jar包配置比Struts2.0.14多了一个commons-fileupload-1.2.1.jar。Struts2.0.x所需要的最小jar包请读者参阅《Struts2教程1:第一个Struts2程序》,在这篇文章中使用了Struts2.0.11.1,该版本与Struts2.0.14类似。
    如果要使用Struts2的注释功能,在Struts2.0.14中只要引用了struts2-core-2.1.6.jar文件即可,而在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属性了),但它们的使用方法相同。

    因此,读者在使用Struts2.1.x时要注意,这一版本与Struts2.0.x并不完全兼容(但大部分还是兼容的)。据我的经验,Struts2.1.x版本将是比较稳定的一个Struts2版本,因此,Struts1.x就是在Struts1.1版本才开始流行起来的。
    以前也测试过Struts2的其他版本,经部分测试,目前Struts 2分为三个版本阶段:Struts 2.0.9及以前版本、Struts2.0.10至Struts2.0.14、Struts 2.1.x, 这三类版本都不太兼容,如果确定使用struts2来开发程序,建议直接使用struts2.1.6及以后的版本,这是一个比较稳定的Struts2版本。




Android开发完全讲义(第2版)(本书版权已输出到台湾)

http://product.dangdang.com/product.aspx?product_id=22741502



Android高薪之路:Android程序员面试宝典 http://book.360buy.com/10970314.html


新浪微博:http://t.sina.com.cn/androidguy   昵称:李宁_Lining

posted on 2009-02-06 12:55 银河使者 阅读(5442) 评论(14)  编辑  收藏 所属分类: Struts2java 原创

评论

# re: Struts2.1.6测试小记  回复  更多评论   

看了下文檔struts2-convention-plugin零配置下似乎一個action只能對應一個方法
不支持這種類型,一個action多個方法的如
xx_list.do
xx_edit.do
xx_add.do
這樣有點麻煩.希望后面版本能支持

2009-02-06 14:19 | altchen

# re: Struts2.1.6测试小记  回复  更多评论   

Strus2 中惯常的一个 action 对应多个方法的用法如下:

xx!list.action
xx!edit.action
xx!add.action

不过楼上说的 struts2-convention-plugin零配置倒是还没用过。
2009-02-06 17:46 | 隔叶黄莺

# re: Struts2.1.6测试小记  回复  更多评论   

@隔叶黄莺
是的,如果通过配置文件来实现多个方法,可以通过url的方式来实现(使用!),也可以在<action>元素中使用method属性来配置。
但使用注释还没有试过是否可以使用这种方式。
2009-02-06 18:20 | 银河使者

# re: Struts2.1.6测试小记[未登录]  回复  更多评论   

试了一下了面的AJAX,但是发现里面的JS特性不支持IE6啊
2009-02-07 21:57 | zero

# re: Struts2.1.6测试小记  回复  更多评论   

@zero
试的哪个ajax特性
2009-02-07 22:24 | 银河使者

# re: Struts2.1.6测试小记[未登录]  回复  更多评论   

@银河使者
一段dojo-plugin的,从Struts2官方弄的有关按钮响应的例子测试,结果只有FF有反应
2009-02-09 11:43 | zero

# re: Struts2.1.6测试小记[未登录]  回复  更多评论   

这以前试的struts2.0.11有的只有ie里好使,firefox里不好使啊。ajax要实现真正的跨浏览器是很困难的
2009-02-09 11:59 | 银河使者

# re: Struts2.1.6测试小记[未登录]  回复  更多评论   

@银河使者
那看来目前struts2说的AJAX还是很难拿来做实际项目的样子
2009-02-09 12:09 | zero

# re: Struts2.1.6测试小记  回复  更多评论   

如果用ajax,可以用其他的,如jquery,struts 2本身的ajax功能不太好用,也比较复杂。不知道struts 2中的ajax是自己做的,还是集成的。
2009-02-09 12:43 | 银河使者

# re: Struts2.1.6测试小记[未登录]  回复  更多评论   

@银河使者
呵呵,偶还是刚开始学web开发,struts2才接触一些,那我还有的看了

我看官方说的是 struts2.x的ajax一直是基于dojo的一个较早的版本,2.1.6开始将dojo提出来作为ajax插件,从此struts2要用ajax特性就要加入dojo的插件库,以及dojo-plugin的taglib
2009-02-09 13:18 | zero

# re: Struts2.1.6测试小记  回复  更多评论   

@zero
不用struts2的ajax也行,自己用其他的ajax framework,绕过struts 2。
struts 2分为两部分,后端的拦截器,action等,以及前台的struts 2标签,这些标签并不是必须的,也可直接用html表单。struts 2的标签有时排版有些别扭,要想排好,还得了解struts 2中的模板。而且这些不能在象dreamweaver中设计。
2009-02-09 13:30 | 银河使者

# re: Struts2.1.6测试小记[未登录]  回复  更多评论   

@银河使者
恩,确实,
貌似无论是从那个地方下手,想把东西做好做炫,还是得很熟悉“底层”的东西才行,
目前正在研究...

PS:框架为实际的需求想的还是少了点点的样子
2009-02-10 14:28 | zero

# re: Struts2.1.6测试小记  回复  更多评论   

struts2.16类型转换是不是有bug呢。double如果值为0.00都抛异常ognl.MethodFailedException: [java.lang.NoSuchMethodException:
2009-04-13 13:13 | ccue

# re: Struts2.1.6测试小记  回复  更多评论   

@ccue
抛出java.lang.NoSuchMethodException异常是因为没有该属性的setter方法,struts 2无法为该属性赋值。
2009-04-13 14:39 | 银河使者

只有注册用户登录后才能发表评论。


网站导航: