<%-- set all bean properties that match a form field --%> 集成JavaBean组件是JSP技术设计方面的一个过人之处。不幸的是bean和JDBC之间的集成根本不是无缝的,因 映射bean和ResultSet 示例使用com.devtech.sql以使说明简洁。示例使用Java Reflection和 此我们针对DevTech的JDBC工作开发Introspection,依靠列名及属性名提供了一个包,它不仅提供了bean和JDBCJDBC数据和bean属性间的映射。您可的集成,而且还有必要的异常处理,从而使程序员不必应付这些细节。 以把DevTech包替换成自己的代码。 annotation(注释)示例使用com.devtech.sql包中的两种查询和更新方法。这里用到的查询方法传递一个bean类、一个SQL查询和一个Object数组填充查询中的占位符。在这种情况下,仅有的占位符是给页面的URL的。结果是一个数据库游标对象,它必须是一种迭代器。 清单7 数据库游标对象 dataBase.queryCursor(AnnotationDBBean.class, new String[] { URL }, \\这个查询方法的有趣之处在于指定类型的bean将会为您实例化,只要bean属性名同ResultSet中的列名相对应,属性值就会被自动设置。每次您用游标选择下一行时,bean的属性就会根据ResultSet被自动设置。 用到的这种特殊更新方法有一个bean实例、一个String数组及一条update语句作为参数。String数组值规定了用来填充更新中的占位符的预期bean属性。在这种情况下,page、author和annotation属性是根据bean选择的。 清单8 更新方法 int count = dataBase.update(annotationBean, new String[] { \\我们的JSP页面示例annotations.jsp如清单9中所示。高亮的部分指出两个可以用定制标记替换的scriptlet,如清单 10 中所示。一些为页面设计者提供帮助的'%W %d%b%y %T')\JSP组件、把动态内容放到页面上去的getProperty操作以及标准HTML组成了页面的剩余部分。使用JSP注释的原因是因为JSP注释是私有的,不会出现在输出流中。 清单9 annotation(注释)的JSP页面