扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
二.struts中使用 DynaActionForm
使用表单是网页里面经常遇到的事情.利用struts的标签可以很好的完成这一功能.在struts中表单分为两种.一种是ActionForm..另外一种是DynaActionForm.所谓动态是在使用表单时不需要创建对就的bean文件.ActionForm很简单,在此只说说DynaActionForm.因为在这个小项目中在很多的用户输入.数据验证部分我放到了Action中进行.于是在表示层Form中只是接收数据.用DynaActionForm实现是个很好的选择.
index.jsp
这个页面中和使用静态表单没什么区别,只是在struts-config.xm配置稍微有些不同.
对应此表单的Action的配置:
和ActionForm的不同之处还在于在Action中获取提交的参数时要将ActionForm强制转换为DynaActionForm:
如何获取各参数如下:
动态表单有很多优点.比如可以实现跨页的表单提交.还过也有缺点比如此时它就不能将validate框架集成到里面.有个方法就是可心自己继承DynaActionForm类在其中添加validate方法.再将实际的应用中的Form继承此类.不过此时的将失去使用DynaActionForm的灵活性.只好自己权衡了.
三.struts中使用监听器类
监听器类顾名思义就是.某些事件的触发下能执行的动作.在servlet 中有这样的类专门监听网页中的动作.整理好下:
监听接口 | 监听对象 | 实现方法 |
ServletContextAttributeListener | 监听ServletContext的属性的操作 | 比如增加、删除、修改属性。 |
ServletContextListener | 监听ServletContext |
当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法; 当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。 |
HttpSessionListener | 监听HttpSession的操作 |
当创建一个Session时,激发session Created(HttpSessionEvent se)方法; 当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。 |
HttpSessionAttributeListener | 监听HttpSession中的属性的操作 |
当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法; 当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法; 当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。 |
当然还有关于request对象操作的监听器类.在此不在敖述;下面举一个我使用的例子:使用监听器实现对数据库的访问,当应用启动时即访问数据库加载信息,监听器类如下:
为了使用启动应用时能调用到这个文件还必须在web.xml为监听器进行配置.
这个文件启动后ServletContext中的参数grammarCollection会被保存到ServletContext域中.在jsp或action文件中可使用getServletContext().getAttribute("grammarCollection")访问这个对象.
以上代码可以生成一个从数据库动态检索列表项的下拉列表.因为grammarCollection是一个Vector类型的对象.可以这样为其添加值对:
关于lisener的东西还很多.偶只是用到这么多,欢迎留言交流.
icai项目开发日记(三)....struts中Ajax的简单应用.....
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者