提供基于jt808协议的服务器Java源码实现
Struts2的前景还是稳健的,使用的人数在不断的增加。参看struts 2依然坚挺 Seam前景不明但基于Struts2的开发,如果没有足够的经验和规范做支撑,并不能带来还多的好处,如果失控,一样和JSP+servlet泛滥,这一点需要警示。1).Action类及Action Name的命名规范 Action类的后缀统一加上"Action", Action的Name与类的名称保持一致,但不要"Action"的后缀。 这样是为了通过Action的调用url, 很方便的找到Action类。
如上,看到/searchKnowledge.action,就可以很清楚的知道类是SearchKnowledgeAction了。很多人不注重这一点,开发调试中,每次都要笨拙的看struts.xml文件。
2).每个项目都必须至少有一个公用的Action类,GenericAction 完成的功能如下: 1.获取、注入request 2.获取、注入Session 3.错误页面跳转 4.获取在线用户和会员的信息(个人信息、权限、角色等) 5.注入类型转换的格式转换类,如日期类型转换:ConvertUtils.register(new DateConverter(), Date.class); 6.获取系统配置信息,如公用变量(如配置路径等) 7.对于request参数的处理等 8.其他可扩展的操作
3).擅长使用Dispatch的模式 有人说Action,不就是Dispatch的延伸吗,其实还可以做的更好。
这个典型的模式如下: 1.页面表单的Hidden参数中,就是一个ID,如queryID="queryKnowledges". Action="/paginate.action"
2.PaginateAction的模板如下
3.在struts.xml中进行配置与queryID想对应:
实战代码如下:
4).配置文件的目录结构
5).不断的提炼公用的Action,并放在一个package中: 如上传、下载、异常处理、excel数据录入、过滤器(filter)、截取器(inteceptor)等等
6).将一个模块中的Action放置在一起
7).擅与使用redirect来保持request参数. 使用redirect一样可以将request参数传递到下一页面中,不需要使用session. viewPost?postid=${postid}
8)灵活使用chain模式,来编写简短而高度重用的Action,把相关的几个action连接起来,共同完成一个功能。 同一个Chain的多个action间数据的传递非常方便,由于处于chain中的action属于同一个http请求,共享一个ActionContext,故可以在上下文中获取,在页面上可以直接使用,上一个Action的成员变量。
9) 编写简洁而高度重用的Action的另一个方法,就是将页面的渲染,格式转换的逻辑,抽取出来,自定义成Result。官方的Result
10) 明确Action类不要超长,如不要超过500行代码。 很多人为了偷懒,喜欢在一个Action中,不断的添加方法,而不管这些方法与Action的语义是否符合,到底是多个Action,还是多个方法,在开发过程中,还是要注重这些方法是否与创建Action类的目的、语义保持一致。 最好明确代码的长度,团队人多,手杂,水平不一,为了保证可维护性,这是一个不得已的方法。
posted on 2008-11-27 08:54 Speed 阅读(4803) 评论(5) 编辑 收藏 所属分类: 框架设计 、struts2 、J2EE
GenericAction 贴出来一个看看 回复 更多评论
3).擅长使用Dispatch的模式楼主这条应该可以再斟酌 回复 更多评论
很实用的东东,谢谢分享,期待更多精彩! 回复 更多评论
try annotation and you will find it amazing... 回复 更多评论
似乎这几点是所有的编程人员都要有的习惯! 回复 更多评论