Board logo

标题: Struts 开发的最佳实践(2) [打印本页]

作者: look_w    时间: 2018-8-10 21:41     标题: Struts 开发的最佳实践(2)

最佳实践 2. 使用 Action 类处理请求通常,在使用这个 Struts 框架时,对于 JSP 组件请求应用程序执行的每个动作,应用程序都必须扩展 Struts 的 org.apache.struts.action.Action 以创建 Action 类。在处理请求时,单个的 Action 类与应用程序的 Model 层连接。
要实现这一最佳实践,Struts 建议您遵循以下步骤:
优势这一实践有两个主要优势。首先,它避免了 Web 应用程序中每个 Action 类的冗余代码。其次,通过将 Action 类的行为集中在一起,使应用程序能够更多地控制通用的任务。
最佳实践 3. 使用 ActionForm 处理会话数据在一个基于 Struts 的 Web 应用程序中,每个 ActionForm 都扩展 org.apache.struts.action.ActionForm 类。这些 ActionForm 封装页面数据,并提供一个验证框架来验证请求参数。
大多数 Web 应用程序都在会话中保持数据,使其在整个应用程序过程中可用。这种最佳实践实现了这种 Web 应用程序特性。它允许方法 toSession() 和 fromSession() 将会话数据移动到表单数据或从表单数据移回。因此,它实现了在 Web 应用程序中保持会话数据。
要遵循一最佳实践,执行以下步骤:
何时使用这一实践这一实践最适用于:会话数据是单一对象和/或每个页操作或使用会话数据。
最佳实践 4. 有效处理异常传统地,当在 Action 类中发生应用程序异常时,异常首先被写入日志。然后此类创建一个 ActionError 并在合适的作用域中存储它。然后 Action 类再将控制转交给合适的 ActionForward。清单 3 展示了 Action 类是如何处理异常的。
清单 3. Action 类中的异常处理
1
2
3
4
5
6
7
8
9
10
try {
//Code in Action class
}
catch (ApplicationException e) {
//log exception
ActionErrors actionErrors = new ActionErrors();
ActionError actionError = new ActionError(e.getErrorCode());
actionErrors.add(ActionErrors.GLOBAL_ERROR, actionError);
saveErrors(request, actionErrors);
}




传统的异常处理过程在每个 Action 类中保存异常信息,而最佳实践 4 则在处理异常时避免冗余代码。
要使用这一最佳实践,Struts 建议您遵循以下步骤:
清单 4. 有效使用 ActionErrors
1
2
3
4
5
6
7
8
9
try       {
//Code in Action class
}
catch(ApplicationException appException) {
//Log exception
//Add error to actionErrors
actionErrors.add(ActionErrors.GLOBAL_ERROR,
   new ActionError(appException.getErrorCode()));
}




在 BP4Action 中,调用方法 performTask() 之后,通过 saveErrors(request, errors) 保存 ActionErrors。
优势这一实践主要的优势是:避免了每个处理 ActionErrors 的 Action 类中的代码冗余。
结束语对开发团队而言,构建易于维护的 Web 应用程序是一项非常具有挑战性的任务。使用 Struts 等成熟的框架有助于实现通常与构建应用程序相关的基础设施代码。Struts 框架提供了一组标准接口,用于将业务逻辑插入到应用程序中。此外,还提供了一种跨开发团队的一致机制,用于执行用户数据验证、屏幕导航等任务,以及用于简化开发屏幕的一组定制标记库。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0