java

位置:IT落伍者 >> java >> 浏览文章

Jakarta Struts应用的七个经验(5)


发布日期:2021年03月13日
 
Jakarta Struts应用的七个经验(5)

使用动态ActionForm

在Struts framework中ActionForm对象用来包装HTML表格数据(包括请求)并返回返回动态显示给用户的数据它们必须是完全的JavaBean并继承Struts里面的ActionForm类同时用户可以有选择地覆盖两个缺省方法

该特性能节省很多时间因为它可以协助进行自动的表现层的验证ActionForm的唯一缺点是必须为不同的HTML表格生成多个ActionForm 类以保存数据例如如果有一个页面含有用户的注册信息另一个页面则含有用户的介绍人的信息那么就需要有两个不同的ActionForm类这在大的应用系统中就会导致过多的ActionForm类Struts 对此做出了很好的改进引入了动态ActionForm类概念

通过Struts framework中的DynaActionForm类及其子类可以实现动态的ActionForm 动态的ActionForm允许你通过Struts的配置文件完成ActionForm的全部配置再也没有必要在应用程序中创建具体的ActionForm类具体配置方法是在Struts的配置文件通过增加一个元素将type属性设定成DynaActionForm或它的某个子类的全名下面的例子创建了一个动态的ActionForm名为logonForm它包含两个实例变量username 和 password

动态的ActionForm可以用于Action类和JSP使用方法跟普通的ActionForm相同只有一个小差别如果使用普通的ActionForm对象则需要提供get 和 set方法取得和设置数据以上面的例子而言我们需要提供getUsername() 和 setUsername()方法取得和设置username变量同样地有一对方法用于取得和设置password变量

这里我们使用的是DynaActionForm它将变量保存在一个Map类对象中所以必须使用DynaActionForm 类中的get(name) 和 set(name)方法其中参数name是要访问的实例变量名例如要访问DynaActionForm中username的值可以采用类似的代码

String username = (String)formget(username);

由于值存放在一个Map对象所以要记得对get()方法返回的Object对象做强制性类型转换

DynaActionForm有好几个很有用的子类其中最重要的是DynaValidatorForm 这个动态的ActionForm和Validator 一起利用公共的Validator包来提供自动验证这个特性使你得以在程序代码之外指定验证规则将两个特性结合使用对开发人员来说将非常有吸引力

使用可视化工具

自从Struts 分布以来就出现了不少可视化工具用于协助创建修改和维护Struts的配置文件配置文件本身是基于XML格式在大中型的开发应用中会增大变得很笨拙为了更方便的管理这些文件一旦文件大到你无法一目了然的时候建议试着采用其中的一种GUI 工具协助开发商业性的和开放源代码的工具都有不少列出了可用的工具和其相关链接从那里可以获取更多信息

Struts GUI 工具

应用程序 性质 网址

Adalon 商业软件

Easy Struts 开放源码

Struts Console 免费

JForms 商业软件

Camino 商业软件

Struts Builder 开放源码

StrutsGUI 免费 uk/struts/l

上一篇:利用Ecipse生成Javadoc乱码解决方法

下一篇:Hibernate3的DetachedCriteria支持