让Blog最新评论“动”起来

技术与开发

我是一名“博主”,喜欢在博客上写些文章,对我文章进行评论的人也不少。看这些评论要进入一一对应的网页,觉得很麻烦。我看过一些网站有滚动显示新闻的功能,我们博客也可以模仿弄个滚动评论吗?

要实现这个功能很简单(图1),我们可以利用JSP和Servlet技术开发一个标签,利用JAVA反射机制将标签中的参数显示出来,就可以得到我们想要的效果。最后我们把标签进行封装变成插件,方便使用(插件下载地址http://www.cpcw.com/bzsoft)。JAVA反射机制的运用,可以使封装的插件适用于相关的数据表,而不受具体的表名或列名的限制。

3-f9-1-1.jpg
图1

小知识:JAVA反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法。这种动态获取信息以及动态调用对象的方法就被称为JAVA语言的反射机制。

第一步:新建JSP页面

打开开发工具MyEclipse,执行菜单“New”下的“Web Project”命令,新建一个Web项目,给项目命名为Blogpage。在Blogpage的WebRoot节点上单击鼠标右键,选择“新建JSP页面”命令,设置页面的名字为Page.jsp。然后在页面内部分添加如下代码:

<p:page tableName="news" className="org.xmh.model.News" path="page.jsp"

columns="0,0,0,0,1" size="3"></p:page>

代码中的TableName是评论表名,ClassName是对象名,Path是页名,Columns是表的列,Size是要显示的评论条数。又在页面的头部信息中添加如下代码:

<%@ taglib uri="/WEB-INF/tag/pageTag.tld" prefix="p"%>

第二步:设计滚动标签

标签描述文件可以把页面上自定义的标签与后面的标签类进行关联,它是起着中间枢纽的作用,不可缺少。鼠标右键单击Blogpage的WEB-INF节点,新建一个Tag文件夹,然后Tag文件夹里新建一个类型为TLD的标签描述文件,命名为PageTag.tld。在其中输入如下代码。

<taglib>

<tlib-version>1.0</tlib-version>

<jsp-version>1.2</jsp-version>

<short-name>p</short-name>

<tag>

<name>page</name>

<tag-class>org.xmh.tags.PageTag</tag-class>

<attribute>

<name>className</name>

<required>true</required>

</attribute>

<attribute>

<name>tableName</name>

<required>true</required>

</attribute>

<attribute>

<name>path</name>

<required>true</required>

</attribute>

<attribute>

<name>columns</name>

<required>true</required>

</attribute>

<attribute>

<name>size</name>

<required>true</required>

</attribute>

</tag>

</taglib>

Tag节点下的Name指的是标签的名字,Tag-class指的是标签类的具体位置,Attribute下的Name指的是属性的名字,Required指的是属性是否必须提供。

第三步:封装标签

在Blogpage上单击鼠标右键,新建一个Class文件,将Name名设置为PageTag,包名设置为Org.xmh.pageuntil(图2)。单击“Finish”按钮后,将PageTag类中的内容用相关代码替换即可(代码下载地址http://www.cpcw.com/bzsoft)。

3-f9-1-2.jpg

总结

通过本例的学习,读者朋友可以更好地理解JAVA反射机制的实际运用,在工作中引用反射机制可以提高代码的重用率和优化率,提高编码的质量。此外,利用JAVA反射机制,我们还可以用来设计通用版的分页程序等。