|
3.7 文章模块设计 |
本模块使用的数据表:tb_article(文章信息表)
文章模块是博客系统的核心,用户将通过该模块实现对文章的维护,它实现的操作包括文章的添加、删除及修改操作,文章类型的添加和删除操作。
在文章模块中涉及的数据表是文章信息表(tb_article)。首先根据这些信息创建文章的实体类,名称为ArticleInfo,然后再创建文章管理的Action控制器类,由控制器控制调用后台业务逻辑并完成文章模块的维护。
在文章信息表中保存着文章的标题、文章类别名称及文章内容等信息。根据这些信息创建文章的实体类,名称为ArticleInfo,该类的关键代码如下:
代码位置:光盘 \MR\03\src\com\mr\model\ArticleInfo.java
文章的实现类名称为ArticleAction。该类继承了Struts 2的ActionSupport类并实现类的ServletRequestAware接口,通过该接口的setServletRequest()方法获取Web应用中的request对象。ArticleAction类的具体实现代码如下:
代码位置:光盘 \MR\03\src\com\mr\webiter\ArticleAction.java
在创建完文章实现类后,需要在struts.xml文件中进行配置。该文件主要配置文章实现类的请求结果。文章实现类涉及struts.xml文件的代码如下:
代码位置:光盘 \MR\03\src\ struts.xml
在用户信息表中,art_type字段存储的内容是文章类型的名称。文章类型字段将文章类型名称以“,”逗号进行分开存储,如图3.17所示。程序将文章类型字段内容获取并存储到String类型对象,之后通过String类型中的split()方法将该字符串中的文章类型名称分隔并存储到String类型的数组中。
图3.17 用户信息表存储文章类型方式
1)文章类型查询与添加
当用户登录博客空间后台成功后,单击左侧操作区域中的“文章类别”超链接,则进入文章类别查询页面中,如图3.18所示。
图3.18 文章类别查询页面
在实际中,当用户在类别表单中输入文章类别名称,单击“添加类别”按钮后可以将文章类别添加到数据库,然后,返回到文章类别查询页面,可以查看到刚刚添加的文章类别。其中,设置添加文章类别的表单代码如下:
代码位置:光盘 \MR\03\WebRoot\blog\userManager\artType _query.jsp
查询文章类别与添加文章类别所触发的URL地址是“userInfo_artType_query.htm”,该地址所执行的方法是UserInfo类中的artType_query()方法,其代码如下:
代码位置:光盘 \MR\ 03\src\com\mr\webiter\UserInfo.java
2)文章类型删除
文章类型的删除是在用户信息表中,将页面中获取文章类型名称的art_type字段相应的内容删除,以实现文章类型删除的操作。实现该操作的是UserInfoAction类中artType_delete()方法,其关键代码如下:
代码位置:光盘 \MR\03\src\com\mr\webiter\UserInfo.java
用户在后台管理数据时,单击左侧操作区域中的“添加文章”超链接,可以进入文章添加的页面,该页面主要是收集文章标题、文章内容及文章发布时间等信息。文章添加页面的运行结果如图3.19所示。
图3.19 文章添加页面
程序通过执行ArticleAction类中的article_add()方法实现添加文章信息的操作,该方法从页面中获取的文章对象articleInfo通过ObjectDao类中的saveT()方法将文章信息保存在数据库中。article_add()关键代码如下:
代码位置:光盘 \MR\ 03\src\com\mr\webiter\ArticleAction.java
当管理员成功登录网站的后台首页面,单击导航区域中的“文章管理”超链接后,可以进入文章查询页面,运行结果如图3.20所示。
图3.20 文章查询页面
利用ArticleAction类中的admin_articleQuery()方法实现文章查询的操作,该方法主要实现3个功能:设置文章查询的HQL语句;执行查询HQL语句实现对文章的查询操作;对查询结果进行分页操作,其代码如下:
代码位置:光盘 \MR\03\src\com\mr\webiter\ArticleAction.java
admin_articleQuery()方法代码流程图如图3.21所示。
图3.21 admin_articleQuery()方法流程图
当用户根据用户名访问博客空间时,首先进入的是文章查询页面,在该页面中显示的只是文章的题目信息,如果想要对该文章进行详细查询,单击该文章相应的“详细查询”超链接可以进入到文章详细查询页面,该页面的运行结果如图3.22所示。
图3.22 文章详细查询页面
实现文章详细查询功能的是ArticleInfoAction类中f_article_query()方法。该方法主要实现3个功能:实现对文章的详细查询;将访问文章的次数进行自动增加;查询文章回复的详细内容。admin_articleQuery()方法代码如下:
代码位置:光盘 \MR\03\src\com\mr\webiter\ArticleAction.java
在网站的首页面中,推荐文章区域中显示进入博客空间的文章标题,如图3.23所示。
推荐文章设置主要是后台的操作,当管理员登录后台成功后,单击导航区域中的“文章管理”超链接,可以对所有的文章信息进行查询操作,如果要想对文章进行详细查询,单击相应的“详细查询”超链接可以进入后台文章详细查询的页面,如图3.24所示。
图3.23 首页显示的推荐文章信息
图3.24 后台文章详细查询页面
实现推荐文章操作功能的是ArticleInfoAction类中的admin_articleQueryOne()方法,其关键代码如下:
代码位置:光盘 \MR\ 03\src\com\mr\webiter\ArticleAction.java