之前在GL的督促下用Struts做了一个简单的HR系统。其间有过许多问题,现在归纳一下,希望对看到的人有所帮助。
笔者以前也用Struts开发过一个系统,那时候Struts的版本是1.1,现在1.2了,发现有一点区别。这次开发最开始的问题就是在这一点上。
首先有关于消息提示部分的内容。在Action中,saveErrors(String, ActionError)已经被废弃了,但是saveErrors(String, ActionMessage)还是可用的。而很多时候,为了区分错误消息和提示消息, 还可以用saveMessages(String, ActionMessage)处理相关内容。
同时我发现,无论用saveErrors还是savaMessages, <html:errors/>标签都是可用来提取消息的。不怕麻烦的话,用:
<html:messages id="msg" message="false"><o:p></o:p>
<bean:write name="msg" /><o:p></o:p>
</html:messages>
这样的方式,可以将错误(error) 消息和提示(message) 消息显式区分开来。当然了,我一向是怕麻烦的,所以直接用<html:errors>就可以了。不过心中有些疑惑,Struts提供<html:errors/>和<html:messages/>这两个标签,理论上应该是希望前者用来描述错误消息,后者用来描述提示消息吧?不知道是不是我用法上还有些问题?
另外,需要提醒的一点是,我用的是Struts 1.2.4,而现在最新的1.2.9似乎有一些莫名其妙的问题。建议现在应用的话,不要选择这个最新的版本。
第二个是Validator应用的问题。在Struts 1.2.9中(其实是从1.2.7开始), Validator-rules.xml文件的定义有了一些区别。主要是很多函数多了一个org.apache.commons.validator.Validator的参数,如果使用之前版本的Validator.xml文件,可能会报NoSuchMethodException——参数少了一个,方法自然就找不到了。。而在1.2.4的版本中,这个问题是没有的。
第三个是Tiles涉及的问题。受Html中Frame的影响,我本来想找到一种可以实现Tiles中某个页面部分刷新的方法。(比如在有左右两部分的页面,单击左链接,刷新右侧页面)而事实证明,这是不可能的。我猜测的原因是Tiles的整体页面已经在Server端编译成servlet,而Html是无需编译的脚本。不得已,只有采用正页面刷新的方式。(不知道有没有别的方法?知道的请指教)
第四是单表单多按钮时(LookupDispatchAction),利用Validator验证,需要单独写ValidatorForm的validate函数,因为也许不同的按钮需要的表单验证是不一样的。这里提供一份代码样本:
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
String parameter = mapping.getParameter();
if( parameter != null ) {
// Identify the method name to be dispatched to.
String name = request.getParameter(parameter);
MessageResources resources =
(MessageResources) request.getAttribute(Globals.MESSAGES_KEY);
// Identify the localized message for the cancel button
String message = resources.getMessage("empmng.modify.deletebutton");
// if message resource matches the cancel button then no
// need to validate
if( name != null && name.equals(message) ) {
return null;
}
}
// perform regular validation
return super.validate(mapping, request);
}
暂时先写这些吧,还有收录的几个小技巧,我会写在另一片文章里
分享到:
相关推荐
【标题】"小型论坛系统 struts2 hibernate spring" 是一个基于Java技术栈构建的简单但功能完备的在线讨论平台。这个系统利用了Struts2、Hibernate和Spring这三大核心框架,它们是Java企业级应用开发中的常用工具,...
学习Struts2第三天笔记
在本项目“用Struts开发一个名片管理系统”中,我们将探讨如何利用Struts来实现一个实用且高效的名片管理平台。 1. **Struts架构**: Struts框架的核心组件包括ActionServlet、ActionForm、Action、ActionMapping...
总之,JSP+Struts2的学生宿舍管理系统为学习者提供了一个全面了解Web应用开发流程的机会,同时也可以作为实际运行的系统,服务于学校的日常管理工作。通过深入学习和实践,开发者可以进一步提升自己的编程技能和项目...
### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...
Struts框架是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它主要用来简化在Java EE平台上构建动态网站的应用开发过程。在这个名为“学生请假系统”的项目中,开发人员利用了Struts框架的...
学习Struts2第四天笔记
Struts2 是一个基于 Java Web 的框架,广泛应用于 Web 应用程序的开发。下面将从 Struts2 项目开发的角度,详细介绍 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点。 项目需求分析 在 Struts2 ...
本项目是一个基于MVC Struts框架开发的小型Web应用程序,它充分展示了Struts框架在构建动态、数据驱动的Web应用中的强大功能。 【描述】 这个小型Web应用充分利用了Struts框架的核心特性,包括Action类、配置文件...
本系统采用经典的Java Web开发框架——Struts2、持久层框架Hibernate以及关系型数据库MySQL,构建了一个功能完备、易于维护的图书管理系统。下面将详细阐述这三个核心技术在系统中的应用。 首先,Struts2作为Action...
本项目是利用Struts2框架构建的一个新闻发布系统,它展示了如何利用该框架实现一个完整的、功能丰富的网站应用。以下是关于这个项目及其相关技术的详细说明。 【开发环境】 开发工具选择的是MyEclipse 9.0,这是一...
【标题】"jsp+mysql+struts实现的一个财务管理系统"涉及了三个主要技术:Struts、MySQL和JSP,这些都是Web开发中常见的组件。本文将详细介绍这三个技术在财务管理系统中的应用及其相互配合。 **1. Struts框架** ...
Struts2 是一个功能强大且灵活的 Web 开发框架,它不仅能够帮助开发者快速搭建 Web 应用,还能通过其丰富的特性和扩展性满足复杂应用的需求。掌握 Struts2 的核心概念和技术要点,对于 Web 开发者来说至关重要。
**Struts2** 是一款流行的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发过程。Struts2 提供了一种统一的方法来构建 Web 应用程序,并且具有良好的扩展性和灵活性...
Struts2是一个强大的Java...基于Struts2的留言板系统整合了上述多个方面,为开发者提供了一个完整的框架,使得开发过程更加高效,同时降低了系统的复杂性。通过深入理解这些知识点,你可以更好地构建和维护这样的系统。
Struts通过提供一个统一的标准框架,将开发者从底层实现中解放出来,专注于业务逻辑的实现,提高了开发效率和代码的可扩展性。 在MVC模式中,Struts有其独特的实现方式。它引入了一个前端控制器ActionServlet,作为...
【JSP+Struts2开发网络在线考试系统】是一个基于Java技术的Web应用程序,用于实现互联网上的在线测试功能。这个系统结合了JSP(JavaServer Pages)和Struts2框架,充分利用了Java后端的强大处理能力和动态网页的交互...
对于初学者,文档中可能有Struts的快速入门教程,包括创建第一个Struts应用、理解目录结构、编写Action类以及部署应用等内容。这部分将帮助读者快速上手实践。此外,PPT可能包含更直观的图表和流程图,帮助理解...
在四天的学习过程中,你应该通过实践和理解这些核心概念,掌握了创建一个基本的Struts2应用的能力。继续深入学习,如整合Spring、Hibernate等其他框架,你将能构建更复杂、更高效的Java web系统。
Struts2是Apache软件基金会下的一个开源框架,主要用于构建企业级的Java web应用程序。张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置...