作者:蔡毅( caiyi0903@hotmail.com)
时间:2005-10-12
1 依赖的外部包
Struts 更新了以下外部包的依赖:
- 对Commons BeanUtils的依赖更新到Version 1.7.0
- 对Commons Digester 的依赖更新到Version 1.6
- 对Commons Validator 的依赖更新到Version 1.1.4
- 删除对Commons Collections的依赖
- 删除对Commons Lang的依赖
2 核心功能的更新
保存Messages到Session中
Action类中新增一个[saveErrors(HttpSession, ActionMessages)
] 的方法用来将errors存到session中,并且支持自动删除以前session中存过的,源代码如下:
protected void saveMessages(
HttpSession session,
ActionMessages messages) {
// Remove any messages attribute if none are required
if ((messages == null) || messages.isEmpty()) {
session.removeAttribute(Globals.MESSAGE_KEY);
return;
}
// Save the messages we need
session.setAttribute(Globals.MESSAGE_KEY, messages);
}.
Re-directing ActionForward
ActionRedirect 是ActionForward的子类,用来重定向request,支持运行时URL传递的参数。
Download Action
DownloadAction 是一个抽象的Action,提供下载文件的功能。
Dispatch帮助类
ActionDispatcher 是一个帮助类,可以DispatchAction的类别和行为,而不必继承DispatchAction
Lazy Validator Form
如果不需要定义自身属性字段的DynaBeanActionForm,可提供Lazy List 和 Lazy Map 的纯配置方式的懒操作来实现。
Jar包里的配置文件
实现了配置文件(比如Struts config, Validator config和Tiles config文件) 能够被存放在jar包中的功能。Struts 和以前版本一样,在servlet context中查找这些文件,如果没找到,现在Struts是从classloader中尝试继续查找。
3 标签库的更新
错误信息
HTML Inuput标签新增errorKey, errorStyle, errorStyleClass 和errorStyleId 属性。
Readonly / Disabled Forms
新的<html:form>标签中可以使用disable 或read only 属性来使整个form中的元素都被禁用或只读。注:readonly 属性只能影响到<html:text>, <html:textarea> 和<html:password> 。
Bundle Attribute
下列 HTML标签中添加了新的bundle 属性: ButtonTag, CancelTag, CheckboxTag, FileTag, FrameTag, HiddenTag, LinkTag, MultiboxTag, PasswordTag, RadioTag, ResetTag, SelectTag, SubmitTag, TextTag, TextareaTag。.
ErrorTag
新增header, footer, prefix, suffix 属性
4 验证框架的更新
支持Resource Bundle
在Validator配置文件 (比如 validation.xml) 中<msg>新增resource 属性
在新版本中的范例工程struts-examples 中可以找到最新的演示页面。