之前在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);
}
暂时先写这些吧,还有收录的几个小技巧,我会写在另一片文章里
分享到:
相关推荐
java中struts1的开发过程---可以看一看
学习Struts2第三天笔记
J2EE用Struts开发一个名片管理系统
struts2框架学习笔记整理,作为参考相互学习,多多指正
学习Struts2第四天笔记
JSP+Struts2开发校园学生宿舍管理系统源代码下载,可用于毕业设计.
毕生学习struts2的学习笔记,整理了好久,实打实的干货
自己开发STRUTS 自己开发STRUTS 自己开发STRUTS
Struts开发技巧Struts开发技巧Struts开发技巧Struts开发技巧Struts开发技巧Struts开发技巧Struts开发技巧Struts开发技巧
此资源是使用Struts2开发租房系统1-5章课件的第二部分,需要与其他两部分一起下载后才能解压。
Struts2 + Hibernate开发笔记
这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用
STRUTS经典笔记STRUTS经典笔记STRUTS经典笔记STRUTS经典笔记STRUTS经典笔记
Struts应用开发基础.doc Struts应用开发基础.doc Struts应用开发基础.doc Struts应用开发基础.doc Struts应用开发基础.doc
struts开发登陆功能代码及笔记
自己以Struts2进行Java Web开发的详尽Struts2开发笔记摘录展现,提供大家!
基于MVC struts框架开发的小型WEB里面用到了很多struts框架的技术,是一个很好的学习案例
struts2开发需要用到的jar包
简明实用的Struts2 开发教程 简明实用的Struts2 开发教程
本压缩包涵盖了struts2开发过程中,所涉及的绝大多数jar包