表单框架的用法
如果将jsp:setProperty标记的property属性Hiding为’*’,JSP容器就会使用JAVA映射根据请求参数设置bean的属性。例如,对于category请求参数来说,JSP容器将会查找名为setCategory的bean方法。如果该方法存在,则JSP容器将通过category请求参数的值调用该setCategory方法。相同的算法适用于所有的请求参数。
如果要将请求参数值赋予bean,JAVA映射是非常好的方法,但该方法也有缺点:假设不同的表单中元素名称不相同,而且几乎总是这样,那么,就需要为每个表单实现不同的JavaBeans类。由于要为每个表单实现不同的类,所以,在bean之间将重复几乎相同的代码。categorySelectionAttr方法用于确定是否选中了category复选框,而且该方法返回相应的字符串“checked”或空字符串,这个字符串可以用作HTML中input标记的属性。在其他表单中,别的bean为复选框实现了几乎相同的方法。
在不同的bean之间实现几乎相同的方法是令人乏味的,而且容易出错,要减少需要重复的代码数量,一种方法就是使用外观设计模式。外观对象为子系统的常用程序提供单一且简化的界面。它是一种表单bean,常用程序即beans.html包中的类,标识表单元素的通用代码,常用程序组成了可重用的代码,这种重用的代码是使用外观模式处理表单的主要优点。