快速业务通道

Unmi的Struts2学习笔记(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04

Unmi的Struts2学习笔记(二)

时间:2011-09-04 Unmi.cc 隔叶黄莺

记笔记,尤其是在 Blog 里记,实则是浪费时间。让学习、阅读的速度以数量 级的下降,收获时当时掌握的更细,却并不代表着真记得牢。一小段时间不用它 ,同样可以忘得很干净,也就是方便于以后能由此泛起些涟漪,如能抛砖引玉就 更幸运了。入正题:

1. 记得 Struts1 的 struts-config.xml 通常是放在 WEB-INF 目录下的, Struts2 的 struts.xml 却要放到 WEB-INF/classes 下的,傻眼了吧,反正我是 。没看仔细之前,总给我报 There is no Action mapped for namespace / and action name Login. - [unknown location] 错误。因未在 web.xml 指定 struts.xml,所以用 ClassLoader 来加载它了。

2. 最简单的 Struts2 应用都要用到 freemarker-xxx.jar 包,因为 UI 标签 要用到 FreeMarker ftl 的模板。

3. FilterDispatcher 要处理所有的 Web 请求,所以它的 url-pattern 是 /*,并自动对 *.action 转给业务 Action 处理。

4. struts.xml 中引入一个 <package>节点来包裹 <action>, 必须指定 <package> 的 name 属性,自定义命名即可,与 class 所在包 无多大关系。

5. 把 ActionContext.getContext().getSession() 这个 Map 当 HttpSession 用即可,它与 HttSession 之间的转换 Struts2 的拦截器帮你完成 。

6. 在 Action 接受客户端请求的数据,并且还可存放送给客户端的数据,这 种做法个人觉得不怎么清爽,数据与控制器杂揉一块,也许是受 Struts1 的 ActionForm 的影响。Action 中的属性值会存放在类型为 ValueStack、名为 struts.valueStack 的属性中。

7. Struts2 的标签更是与 Struts1 的千差万别,只有 <s:xxx 的标签了 ,所以只需在 jsp 前加< %@taglib prefix="s" uri="/struts-tags" %> ,哪用 Struts1 那么分门别5类,但功能更强,这个吗,谁用谁知道。

8. 国际化支持要先在 struts.properties 中指定资源束名,如 struts.custom.i18n.resources=messageResource,则在 classpath 下找 messageResource_语言代码_国家代码.properties。用 <s:text name="key"> 或 <s:property value=''%{getText("key")}''/> 输出国 际化消息。

9. Struts2 支持在 JSP 页面中临时加载资源文件,也支持通过全局属来加载 资源文件,上一条就是全局的方式。

10. Action 中增加数据校验功能,可能它继承 ActionSupport 类,并实现 validate() 方法,产生的错误放到 ActionSupport 类的 fieldErrors 域中,由 OGNL 负责输出。有错误请求将转发到 input 逻辑视图。Struts2 的 <s:form .../> 默认已提供了输出校验错误的能力。是否觉得这种校验忒不尽人情了, 别急,Struts2 可让你完全用配置来校验表单的,让你的 Action 还是那个 Action (继承 ActionSupport,无须实现 validate() 方法),只需写一个 ActionName-validattion.xml 文件扔在与 Action 同位置的目录中即可,这实质 就是用的基于 XWork 的验证框架。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号