jsp新闻发布系统设计参考文档.doc_第1页
jsp新闻发布系统设计参考文档.doc_第2页
jsp新闻发布系统设计参考文档.doc_第3页
jsp新闻发布系统设计参考文档.doc_第4页
jsp新闻发布系统设计参考文档.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第 1919 章章 新闻发布系统新闻发布系统 教学要求 学会分析设计一个较复杂的新闻发布系统 学会制作较复杂的动态新闻页 学会设计动态新闻的管理模块 领会 Go To Related Page 的用法 能够综合应用 Ultradev 4 设计一个较复杂的网站 19.119.1 分析分析 新闻发布系统分两大功能模块:供所有用户查看的动态新闻显示模块和只供管 理员进行管理新闻及相关内容的新闻管理模块,也就是用户界面和管理界面。 19.1.1 用户界面分析用户界面分析 用户界面所包含的文件用户界面所包含的文件 news.jsp 该页是查看新闻的主页面。包括新闻类别、新闻标题等内容。 如图所示的是制作好的 news.jsp 页在浏览器中的样子。 动态新闻页 more.jsp 该页用来显示所有新闻内容。在 news.jsp 有一个【更多新闻】 链接,该链接就是指向该页的。 ShowNews.jsp 该页用来显示新闻具体内容。news.jsp 中的新闻标题就 是链接到该页的。 Buttom.htm 和和 head.htm 这两个页是供 news.jsp 和 more.jsp 嵌入用的, 这样可以达到定制用户界面的页首和页尾的功能。 相关数据表相关数据表 表 tNewsSubjectID 表表 tNewsSubject 用来存储新闻类别。表中的每条记录有两个字段: fSubjectName 字段,用来保存新闻类别;fSubjectID 字段,用来保存标记 新闻类别的标号,这个标号在表中是惟一的。如右图所示。 表表 tNews 用来存储新闻的具体内容。表中字段 fNewsID 保存的是每 条记录的编号,这个编号惟一标识一条新闻。字段 fTopic 保存着新闻标题, 字段 fContent 保存着新闻的具体内容,字段 fDate 保存着录入新闻时的日 期,字段 fAuthor 保存着新闻的作者,字段 fKeyWords 保存着查找新闻的 所需要的关键字,字段 fSubjectID 保存着标记新闻类别的标号,这个标号 在这个表中不是惟一的。如图所示。 表 tNews 19.1.2 管理界面分析管理界面分析 新闻管理系统结构新闻管理系统结构 新闻管理系统可分为密码管理密码管理、类别管理类别管理和新闻类别管理新闻类别管理 3 部分。这 3 个功能 模块通过一个 menu.jsp 页联系起来。 与类别管理相关的文件与类别管理相关的文件 这个功能模块包括以下 4 个网页文件。 subMan.jsp 通过该页可以完成对管理类别的编辑、添加和删除的操 作。 SubDel.jsp 删除新闻类别。 SubEdit.jsp 编辑现有的新闻类别。 SubAdd.jsp 添加新闻类别。 与新闻内容管理相关的文件与新闻内容管理相关的文件 这个功能模块包括以下 3 个网页文件。 NewsMan.jsp 通过该页可以完成对新闻内容的编辑、添加和删除的操 作。编辑新闻内容的操作在 NewsMan.jsp 页中完成。 NewsDel.jsp 删除新闻内容。 NewsAdd.jsp 添加新闻内容。 其他相关文件其他相关文件 Menu.jsp 通过该文件来统一管理新闻系统的各项操作,即从该页可进 入对管理系统的密码、新闻的类别和新闻的内容的操作。在浏览器中如图 所示。 menu.jsp 页 Adm.htm 这是“管理”部分的主页面,是一个网页框架文件,它由左 右两个框架组成,左边的框架用来显示 menu.jsp 页,右边的框架用来显示 与新闻类别管理相关的页和显示与新闻内容管理相关的页。利用网页框架, 使管理员管理新闻系统的各个内容更方便,操作简单。 Login.jsp 登录页,这是设置安全机制所用到的。进入新闻管理 系统前必须登录。 Sorry.htm 登录失败时转向该页。 Welcome.htm 首次进入新闻管理系统时在 Adm.htm 页右边的框中调 用该页。说明新闻管理系统的功能。 PassMan.jsp 对本系统的密码管理。 完成这个新闻管理系统主要是对这组文件的制做,以及合理的安排这些文件。 相关数据表相关数据表 新闻管理模块用到了 3 个数据表。表 tNewsSubject 和表 tNews,这两个表已介 绍过。还有一个用于存储用户名和密码的表 tNewsAdmin。如图所示。 表 tNewsAdmin 表 tNewsAdmin 中字段 fAdminName 存储登录管理系统时用的用户名,字段 fAdminPass 存储登录管理系统时的密码。 对新闻管理的各个操作,也就是对服务器端这 3 个表的操作。 19.219.2 制作动态新闻页制作动态新闻页 动态新闻页 news.jsp 的制作,使之能够动态地显示当日以及最近几天的新闻。 由于新闻的标题和内容都存储在服务器端相应的数据表中了,更新或者添加新 闻的操作是对服务器端相应数据表中的记录进行更新,或者向数据表中插入记 录。所以,该页的制作主要是定义记录集,向页面添加动态内容,添加服务器 行为。 这个页动态内容分为 3 部分。 第 1 部分是能够动态地显示所有新闻的类别标题,也就是 news.jsp 中 的链接【国际新闻】、【国内新闻】、【体育新闻】等类别标题。这一部 分动态内容就是对新闻进行分类。 第 2 部分是当前列出新闻的类别标题。也就是 news.jsp 中黑色加粗的 【国际新闻国际新闻】。这一部分随着所选新闻类别变化而变化。它的作用只是标 记当前列出的新闻标题的类别。 第 3 部分也就是 news.jsp 下半部分所示的新闻标题了。这一部分列出 的新闻标题属于当前所选的新闻类别,从这一部分可以阅读相关新闻的详 细内容。 这 3 项需要分别建立记录集,因为它们需要的动态数据不同。但建立的这 3 个 记录集还必须通过一个变量传递参数,以便使这 3 项显示的内容一致。可通过 以下步骤来完成该新闻页。 1. 1.1. 建立记录集。 2. 2.2. 向页面绑定动态数据。 3. 3.3. 添加服务器行为。 其实该页还包含一个新闻搜索器,在第 10 章章中有详述,在此不做介绍。 下面来制作这个动态新闻页 news.jsp。 19.2.1 为动态新闻建立记录集为动态新闻建立记录集 为该页添加动态内容的首先要建立相应的记录集。 1. 1.1. 在站点文件窗口中打开 news.jsp 文件。该页的静态部分已经设计好 了。如图所示。 新闻页的初始文件 2. 2.2. 打开数据绑定监视器,打开定义记录集对话框,建立一个取得新闻 类别的记录集。单击监视器面板上的“+”按钮,从弹出的菜单上选择 Recordset(Query)选项,打开定义记录集对话框,这时如果出现 Advanced Recordset 对话框,单击 Simple 按钮,转到 Simple Recordset 对话框。 在记录集对话框的 Name 文本框中输入 rsSubject。 在 Connection 下拉列表中选择 connBHP。 Table 下拉列表框选择存储新闻类别的数据表tNewsSubject。表 tNewsSubject 只有两个字段:字段fSubjectName 和字段fSubjectID。这两个 字段分别保存的是新闻类别和新闻类别编号,而建立的这个记录集需要从数 据表tNewsSubject 中选取这两个字段,字段fSubjectName 中的数据作为第1 部分的动态内容,字段fSubjectID 中的数据作为动态参数。 在 Column 处选择 All 单选项。 在 Sort 处设置成按 fSubjectID 字段的升序排列。 3. 3.3. 单击 OK 按钮保存设置。这样第 1 个记录集已定义好了。 设置好的记录集对话框如图所示。 4. 4.4. 为第 2 部分动态内容定义记录集。打开定义记录集对话框,如出现 Simple Recordset 对话框,单击 Advanced 按钮,转到 Advanced Recordset 对话框。设置如图所示。 在 SQL 文本框中输入下面的 SQL 语句: SELECT fSubjectName FROM tNewsSubject WHERE fSubjectID =iNewsID 这是一条 SELECT 语句。描述的仍是从表 tNewsSubject 中选取记录中的字段 fSubjectName,最后的 WHERE 子句规定了只选取字段 fSubjectID 的值等于变 量 strNewsID 中的值的记录。变量 iNewsID 中的值是数值型,这个数值标记着 当前列出的新闻类别,这样就把当前新闻类别选取出来了。由于用到了变量 iNewsID,所以必须在 Variables 处定义并赋初值。 在 Name 列输入变量名 strNewsID,在 Default Value 列处输入 1 作为该变量的默 认值,即第 2 部分动态内容在默认情况下列出标记为 1 的新闻类型和 Run-Time Value 列处的运行时值request.getParameter(“iSubjectID”)。第 2、第 3 部分的动态内容 所对应的记录集就是通过参数 iSubjectID 传递动态数据作为选取记录的条件, 这样使得 3 部分的动态内容一致。 5. 5.5. 为第 3 部分动态内容定义记录集。打开高级记录集对话框。设置如 图所示。 在 SQL 处输入 SQL 语句如下: SELECT fTopic, fNewsID FROM tNews WHERE fSubjectID = iCurrentSubID ORDER BY fDate DESC 这个 SELECT 语句是从数据表 tNews 中选取记录。WHERE 子句规定了只选取 字段 fSubjectID 值等于 iCurrentSubID 变量值的记录,并且只取记录的 fTopic 字 段和 fNewsID 字段。子句 ORDER BY fDate DESC 规定了记录按字段 fDate 中 的值(也就是日期)从大到小排序,从动态新闻页的内容上说就是先显示最近 发布的消息。DESC 规定按字段值的降序排序,ASC 规定按字段值的升序排序。 上面语句仍用到了变量,所以必须在 Variables 处定义初值。在 Name 列输入变 量名 iCurrentSubID,在 Default Value 列处输入 1 作为该变量的默认值,即第 3 部分动态内容在默认情况下列出标记为 1 的记录,和 Run-Time Value 列处的运 行时值request.getParameter(“iSubjectID”) 。向这个变量传递参数的值同向第 2 部分动 态内容传递参数的值相同。 19.2.2 使新闻动态显示使新闻动态显示 及时性是新闻的要素之一,必须使新闻动态显示在页面上。所以,建立了记录 集后,开始向页面绑定动态数据。这一操作很简单,添加步骤如下。 1. 1.1. 向第 1 部分动态内容添加动态数据。添加动态数据的位置如图所示 的两条粗线之间的表格中,也就是图中光标所在的位置。 第 1 部分添加动态数据的位置 2. 2.2. 打开数据绑定监视器,单击记录集 rsSubject 前的“+”号,展开该 记录集。选中 fSubjectName 字段,然后把光标放在上图所示的表格中。 3. 3.3. 单击数据绑定监视器面板上的 insert 按钮,这样动态数据就添加到 相应的位置了。 4. 4.4. 按照上面的步骤向第 2 部分和第 3 部分动态内容添加动态数据。把 记录集 rsCurrentSubject 中的 fSubjectName 字段和记录集 rsNews 中的 fTopic 字段分别绑定到第 2 部分动态内容处和第 3 部分动态内容处。添 加了动态数据的位置如图所示的 rsCurrentSubject.fSubjectName和rsNews.fTopic 的两个占位符。 向第 2、3 部分添加动态数据的位置 以上 4 个步骤,就把动态数据绑定到了动态新闻页 news.jsp 上了。 19.2.3 完善新闻页完善新闻页 建立了记录集、添加了动态数据,还需要向页面添加以下 4 种服务器行为使该 页完善起来。 添加添加 Repeat Region 服务器行为服务器行为 使第 1 部分的新闻类别全部显示出 来,使第 3 部分的新闻标题多条显示或全部显示出来。 添加添加 Go To Detail Page 服务器行为服务器行为 根据第 1 部分的类别标题在第 3 部分显示不同类别的新闻标题。从新闻标题可进入具体新闻内容。 添加添加 Show Region 服务器行为服务器行为 使新闻页 news.jsp 上的【没有新闻】 只在没有新闻的情况下显示,若有新闻就使之隐藏起来。下面步骤就是为 该页添加这些服务器行为。 添加添加 Go To Related Page 服器行为服器行为 以便从【更多新闻】跳转到具有 更多新闻的页。 添加 Repeat Region 服务器行为 1. 1.1. 把光标放在第 1 部分动态数据位置上的表格中,用鼠标单击文档窗 口下方的标签。选中表格中的单元格。 2 2 2. . . 这个表格只有1 行 1 列,选标签和标签虽然看起来都一样, 但选标签可以使新闻类别标题显示在一行上。在添加了Repeat Region 服务器行为后,服务器端在执行与此服务器行为对应的程序时, 就生成 1 个 1 行多列的表格HTML 代码,每个单元格存放一个新闻类别 标题。若选标签,则生成1 个 1 列多行的表格。 3. 3.3. 打开服务器行为监视器。单击监视器面板上的“+”按钮,从弹出的 菜单上选择 Repeat- Region 选项。 4 4 4. . . 这时弹出对话框。在对话框的Recordset 下拉列表中选择与第1 部分 动态内容对应的记录集rsSubject,在 Show 处选择 All Records 单选框, 即显示所有新闻类别标题。 5. 5.5. 用鼠标点击rsNews.fTopic占位符选中这个动态文本。按照步骤 2、3 添加 Repeat Region 服务器行为。在设置 Repeat Region 服务器行为 对话框时,在 Recordset 处选择 rsNews 记录集,在 Show 处设置成显示 5 条记录。如图所示。 Repeat Region 服务器行为添加完毕。 添加 Go To Detail Page 服务器行为 1. 1.1. 选中rsSubject.fSubjectName占位符。 2. 2.2. 打开服务器行为监视器。单击监视器面板上的“+”按钮,从弹出的 菜单上选择 Go To Detail Page 选项。按图所示的进行设置。 Recordset 下拉列表中选择记录集 rsSubjectrsSubject;Column 下拉列表中选择 fSubjectIDfSubjectID 字段。 这时 rsSubject.fSubjectName处多了一道下划线,并且用不同颜色的显示,表示是一个链接 区域 3. 3.3. 同样的方法,用鼠标单击第 3 部分动态内容处的rsNews.fTopic占 位符。为其添加动态链接。其 Go To Detail Page 行为对话框的设置如图 所示。 Recordset 下拉列表中选择记录集 rsNews;Column 下拉列表中选择字段 fNewsID 4. 4.4. 该链接所指向的页最好在新窗口中打开。所以,还要对其属性设置 一下。选中该动态文本。然后选择 Window 菜单下的 Properties 选项, 打开属性浮动面板。单击 Target 右边的下三角选择 _blank 选项。如 图所示。这样设置后,在浏览器点击此链接时,所链接的页将在新窗口 中出现。 在 news.jsp 页面上,可看到有一个【没有新闻】的字样。这个字样应 该在没有新闻的情况下出现。所以,需要对【没有新闻】字样添加 Show Reigion 中的一个服务器行为。 5. 5.5. 选中该字样。单击服务器行为面板上的“+”按钮,从弹出的菜单上 选择 Show Region 中的子项 Show If Recordset Is Empty。 6. 6.6. 这时弹出设置该行为的对话框。设置如图所示。 对话框中的 Recordset 处一定选择 rsNews,因为该服务器行为是针对记录集 rsNews 的 news.jsp 页面上还有一个【更多新闻】的链接。从这个链接可以看到 更多新闻。设置链接需要为其添加一个 Go To Related Page 服务器行为, 即转到相关页。这个行为可以向所跳转的页传递参数。从这个链接进入到 相关页时,必须把该页的参数传递过去。使正浏览的动态新闻页的内容与 所要转到的更多新闻页的列出的新闻内容保持一致。也就是说,如果正在 浏览的新闻标题属于国内新闻,那么跳转到更多新闻页时,所列出的新闻 标题仍属于国内新闻。在窗性窗口中设置的链接参数是传不过去的。所以, 必须用此服务器行为。 7. 7.7. 打开服务器行为监视器,单击面板上的“+”按钮,选择 Go To Related Page 选项。 8. 8.8. 这时出现 Go To Related Page 行为对话框。按下图所示进行设置。 Go To Related Page 行为对话框 9. 9.9. 隐藏【更多新闻】字样。在前面已设置了一次显示 5 条新闻标题。 如果某一类新闻总数少于 5 条或仅 5 条时,【更多新闻】字样就可隐藏 起来。 10. 10.10. 首先选中【更多新闻】字样,转到代码窗口中,找到【更多新闻】 字样。对【更多新闻】链接加上条件语句修改后的代码如下。 5 ) % 更多新闻 . 用 rsNews_total 5 作为 if 语句的条件,即新闻多于 5 条时显示【更多新闻】链 接,rsNews_total 是在定义记录 rsNews 时自动生成的变量,其值就是记录的总 数。 动态新闻页的服务器行为也就添加完了,该页也就制作好了。保存所做的工作。 19.2.4 制作显示更多新闻页制作显示更多新闻页 如果经常上网的话,就会经常见到【更多】字样的链接,以便显示更多同 类相关内容,在本例中也使用了一个【更多新闻】的链接,通过这个链接可以 显示所有同类新闻。这个链接的设置在上一节中已讲述,现在用同样的方法来 添加一个此链接指向的页 more.jsp。 制作显示更多新闻页 more.jsp 只需在新闻页 news.jsp 的基础上添加一组导航链 接,通过这个链接可以查看所有相关新闻。 more.jsp 页的制作与 news.jsp 页的制作基本相同,只是比 news.jsp 页多加了两 组动态导航链接。在 news.jsp 页的基础上,记录集的建立、数据的绑定、服务 行为的添加已做好,现在要做的就是为该页添加两组动态导航链接。 添加两组动态导航链接 1. 1.1. 在站点文件窗口中,打开 more.jsp 文件。 2. 2.2. 现在为该页添加两组动态导链接。将光标放至图所示被选中的单元 格中。 向页面添加动态导航链接 3. 3.3. 单击 Insert 菜单,选择 Live ObjectRecordset Navigation Bar。 4. 4.4. 这时弹出 Recordset Navigation Bar 对话框,记录集选择 rsNews,并 选择 Images 单选按钮。如图所示。 5. 5.5. 然后把光标放在该表格的第 1 个单元格内,选择 Insert 菜单下的 Live ObjectRecordset Navigation status 选项。在弹出的对话框中注意选 择记录集 rsNews,如图所示。 把导航状态修改成rsNews_first -rsNews_last /rsNews_total的样子。如图所 示。 页面导航状态 也可以在新闻标题的下再添加一组导航按钮及状态条。 在 news.jsp 页的基础上添加了两组动态链接后,显示更多新闻页的 more.jsp 就 设计好了。 19.2.5 显示新闻具体内容显示新闻具体内容 现在制作一个显示新闻具体内容的页。这个页的设计非常简单,只需定义一个 记录集,绑定动态数据到页面就可以了。 显示新闻具体内容 1. 1.1. 打开站点文件窗口中的 showNews.jsp 页。 2. 2.2. 打开数据绑定监视器,建立一个记录集。下图所示的就是建立该页 记录集的对话框,按照图中所示设置参数。 在 SQL 文本框中输入的 SQL 语句如下。 SELECT fContent FROM tNews WHERE fNewsID = iCurNewsID 本语句是个 SELECT 语句,所描述的是根据 WHERE 子句的规定从表 tNews 中选取记录。WHERE 规定了只选取字段 fNewsID 的值等于变量 txtCurNewsID 的值的记录。在定义这个记录集时用到了变量 iCurNewsID,所以,还需要在 Variables 处的文本框中定义。在 Name 列 处输入变量名 iCurNewsID;在 Default Value 列处输入默认值 1;在 Run- time Value 处输入 request.getParameter(“fNewsID”)。这样该页就根据 news.jsp 页或者 more.jsp 页传过来的参数选取记录集。 定义记录集对话框 3. 3.3. 建立了记录集之后,开始向页面绑定动态数据。展开记录集 rsNewsDetail,选择 fContent 字段,单击数据绑定监视器面板下面的 Insert 按钮。这样就把所需要的动态数据绑定到页面上了。绑定该动态 数据,不需定位页面中的位置。 动态新闻页及相关的页已经完成了。保存所有的工作。 19.319.3 导航页面导航页面 新闻管理模块中各页面可通过一个导航页面来调用。在管理新闻时,首先要调 出导航页面,从导航页面进入管理新闻的各页面。这个导航页面的初始文件如 图所示。 制作 menu.jsp 页 1. 1.1. 在站点文件窗口中打开 menu.jsp 文件。该页面中的【管理密码】与 【管理类别】这两个链接为静态的,分别指向密码管理页 PassMan.jsp 和类别管理页 SubMan.jsp。初始文件中已添加好了。 2. 2.2. 在【新闻】下面的表格中添加管理新闻具体内容的链接。这一项由 多个链接组成,一个链接对应一个新闻类别,因为管理模块中有新闻类 别的管理,管理类别可以添加类别或者删除类别,所以这一组链接要设 置成动态的,在正行修改新闻类别时,也会动态变化。 这个导航页面采用了网页框架。框架的左边是网页文件 menu.jsp,右边是管理模块的说明文件。 在进入新闻管理系统时框架的左边调用的一直是 menu.jsp,右边的框架首先调用 welcome.htm 文件进行说明一下新管理系统所管理的内容。 需要这义一个记录集,所定义记录集的对话框如图所示。 从表 tNewsSubject 中选取记录集,因为表 tNewsSubject 中存放的 是新闻类别。最好把取得的记录设置成按 fSubjectID 的升序排序 定义好记录集后,首先把字段 fSubjectName 绑定到【新闻】下面的表 格中。 3. 3.3. 添加 Go To Detail Pages 服务器行为。在服务器行为监视器中打开 该服务器行为对话框,在 Detail Page 处输入文件名 newsMan.jsp。一定 把字段 fSubjectID 的值作为参数传递到 newsMan.jsp 页。如图所示。 4. 4.4. 选中表格,添加一个 Repeat Region 服务器行为。按图所示进行设 置。 5. 5.5. 保存文件。因为 adm.html 是个框架文件。需要选择 File 菜单下的 Save All Frames 选项进行保存。 19.419.4 密码管理密码管理 客户端的计算机只能访问到新闻发布系统的新闻内容,而对新闻的管理只能由 新闻发布系统的管理员进行管理,不允许浏览者随便修改或添加新闻的内容。 所以,新闻发布系统的管理模块必须设置一定的权限。可以为新闻管理系统设 计一个密码管理页,为管理员修改密码用。 制作密码管理页 PassMan.jsp 管理模块的密码存储在服务器端相应的数据表中。由于密码只能有一个,本页 主要功能也就是修改密码,添加 Update record 服务器行为可以实现其功能。再 添加一个 Validate Form 行为检验窗体对象中是否输入了密码。可按以下步骤添 加两种行为。 1. 1.1. 在站点文件窗口中打开 PassMan.jsp 文件。 2. 2.2. 在新密码提交到服务器端前,还要在客户端验证一下 Form 中各窗 体对象中是否输入了新密码,以及两次输入密码是否相同。所以首先要 添加一个 Validate Form 服务器行为。选中 Form,选择 Window 菜单下 的 Behaviors 选项。打开 Behaviors 行为监视器。 PassMan.jsp 3. 3.3. 单击面板上的“+”按钮,从弹出的菜单上选择 Validate Form 选项, 打 Validate Form 行为对话框。按图所示进行设置。 4. 4.4. 在添加了该行为后,还要对该行为所对应的程序代码进行修改。让 其具有判断两次输入的密码是否相同的功能。 5. 5.5. 在 HTML 代码中找到与 Validate Form 行为对应的程序。添加下面 的代码。 else if (test.charAt(0) = R) errors += - +nm+ is required.n; /手写代码,判断两次输入的密码是否相同 /*手写代码开始 If (form1.txtNewPass.value! =form1.txtPassAgain.value) errors+=两次密码输入不同!; Form1.txtNewPass.value=; Form1.txtPassAgain.value=; Form1.txtNewPass.focus (); ; /*手写代码结束 if (errors) alert(The following error(s) occurred:n+errors); Document. MM_returnValue = (errors = ); / 6. 6.6. 修改数据表中的记录,所修改的是数据表中当前的记录。所以,首 先要定义一个记录集。定义记录集时可按图所示的进行设置。 要从数据表 tNewsAdmin 中取得记录。数据表中的记录只有两个字段,保存用户名 的 fAdminName 字段和保存密码的 fAdminPass 字段,要定义成选取所有的字段(All) 7. 7.7. 定义了记录集后,开始添加一个 Update record 服务器行为。打开 Update record 服务器行为对话框,按图所示进行设置。 更新记录也就是更新记录中 fAdminName 字段的值与所定义的记录集中当前记 录 fAdminName 字段的值相同的记录,fAdminName 字段中的值在表中必须是 惟一的。定义记录集的作用就是为更新记录提供条件。 8. 8.8. 更新表中的记录后,转到 subMan.jsp 页。在 Form Elements 处设置 成 fAdminPass 字段的值修改为窗体 txtNewsPass 中的值。 所修改记录的 fAdminPassfAdminPass 字段的值应该是当前记录的 fAdminPassfAdminPass 字段的值 19.519.5 新闻类别管理新闻类别管理 新闻类别管理包括对新闻类别的编辑、删除和新建类别,管理员也就是通过这 3 个操作来管理新闻类别的。 19.5.1 主页面主页面 类别管理的主页面如图所示。 管理员通过该页选择某一个操作,编辑、删除或新建类别,与这 3 个操作相关 的页分别是 SubEdit.jsp 页、SubDel.jsp 页和 SubAdd.jsp 页,而 SubEdit 页和 SubDel 页所进行的具体操作是根据由类别管理的主页面传递过来的参数来判断 编辑或删除表中的哪一条记录。主页面应把所有新闻类别列出来。 编辑管理类别的主页面所进行的操作就是在给出的静态页面的基础上定义记录 集和添加几种服务器行为。 1. 1.1. 首先在站点文件窗口中打开 SubMan.jsp 文件。 2. 2.2. 定义记录集,向页面绑定动态数据。定义记录集就是从表 tNewsSubject 中取出记录,动态地显示所有新闻类别。定义记录集时, 选取字段的项设置成选取所有的字段,显示记录的顺序设置成按 fSubjectID 字段的升序排序。记录集的名最好取成 rsSubject。设置好的 记录集对话框如图所示。 绑定动态数据。只需把记录集 rsSubject 中的 fSubjectName 字段和 fSubjectID 字段分别绑定到 SubMan.jsp 页面上表中【类别】列处和 ID 列 处。 3. 3.3. 添加 Go To Detail Page 服务器行为。把页面中的编辑操作和删除操 作分别设置成动态链接,并向该链接所指向的页传递参数。设置该动态 链接需要添加 Go To Detail Page 服务器行为。为【编辑】操作设置动态 链接时的 Go To Detail Page 服务器行为对话框如下图所示。 4. 4.4. 为【删除】操作设置动态链接时添加 Go To Detail Page 服务器行为, 与【编辑】操作所不同的是 Detail Page 处的文本框中输入 subdel.jsp 文 件名。 5. 5.5. 添加 Repeat Region 服务器行为。添加 Repeat Region 服务器行为, 使新闻类别全部显示出来。选中表格中的第 1 行。如图所示。 选中表格中的第 1 行 6. 6.6. 添加 Repeat Region 服务器行为时设置成显示所有新闻类别。如图 所示。 Repeat Region 服务器行为对话框 7. 7.7. 为【新建类别】添加链接。该链接不需向所指向的页传递参数,在 属性浮动面板中就可以完成。设置该链接的属性浮动面板如图所示。 8. 8.8. 执行了编辑、删除或新建类别之后,应该刷新 menu.jsp 页,即框架 的左边导航部分。单击页面下面的 body 标签 ,选中页面的所有内容。 单击行为监视器中的“+”按钮,从弹出的菜单上选择 Call JavaScript 选 项。 设置链接的属性浮动面板 9. 9.9. 在弹出的对话框中输入 window.parent.left.location=menu.jsp。如图 所示。 Call JavaScript 对话框 类别管理的主页面也就设置完了。 19.5.2 编辑新闻类别编辑新闻类别 编辑新闻类别页 SubEdit.jsp 的主要功能就是修改相应表中的某一个记录。该页 添加了所需要的行为后的样式如图所示。 SubEdit.jsp 文件 制作“编辑新闻类别”页面 1. 1.1. 添加 Validate Form 行为。 添加 Validate Form 行为的目的是把修改后的类别在提交给服务器之前 验证窗体对象中是否有内容。只有窗体对象中不为空,才能把修改后的结 果提交到服务器端对相应的数据表中的记录进行修改。如图所示进行添加 该行为。 2. 2.2. 定义记录集。 编辑新闻类别就是对存储新闻类别的数据表中的记录进行修改,需要 用 Update Record 服务器行为,添加该服务器行为的前提要定义一个记录 集。按下图所示进行定义记录集。定义该记录集需要设置取得记录的过滤 器,就是根据从管理类别的主页面 SubMan.jsp 传过来的参数进行选取记 录集。 3. 3.3. 定义完记录后,分别把 fSubjectID 字段和 fSubjectName 字段绑定到 Form 中的类别 ID 和类别处。绑定后如图所示。 4. 4.4. 添加 Update Record 服务器行为。设置 Update Record 服务器行为对 话框如图所示。 Unique Key Column 下拉列表中选择 fSubjectID 字段作为修改表 tNewsSubject 中某一个记录的依据,fSubjectID 字段的值在表 tNewsSubject 中是惟一的 19.5.3 新建新闻类别新建新闻类别 新建新闻类别在服务器端所进行的操作就是向表 tNewsSubject 中插入一条记录。 所以完成该页需要添加 2 个行为:一个是用来在客户端验证窗体对象中是否有 内容的 Validate Form 行为;一个就是用来向表 tNewsSubject 中插入记录的 Insert Record 服务器行为。样式如图所示。 设计好的 SubAdd.jsp 文件 1. 1.1. 按下图所示进行添加 Validate Form 行为。 注意把用来输入新闻类型编号的窗体对象设置为数值型(Number) 2. 2.2. 按下图所示进行添加 Insert Record 服务器行为。在设置该对话框时 注意 Form Elements 处的数据类型要匹配,以及所插入记录的数据表。 Insert Record 服务器行为对话框 19.5.4 删除新闻类别删除新闻类别 删除新闻内容在服务器端所进行的操作就是删除相应数据表中的某些记录。该 文件在执行时是不可见的。所完成该页需要定义一个 Prepared 完成对数据库的 删除操作。 1. 1.1. 新建一个文档窗口,以 Subdel.jsp 保存该文件。 2. 2.2. 定义 Prepared。打开服务器行为监视器,单击面板上的“+”按钮, 从弹出的菜单中选择 Prepared(Insert,Update,Delete)选项,打开定义 Prepared 对话框。按图所示进行定义。 在 SQL 处输入的语句如下。 DELETE FROM tNewsSubject WHERE fSubjectID = iSubID 这个语句描述的是根据 WHERE 子句的规定来删除表 tNewsSubject 中的记 录,而变量 iSubID 的值是从类别管理的主页面中传过来的。当然,还需要在 Variables 处定义 iSubID 变量。在 Name 处输入 iSubID,在 Run-time Value 处输 入 request.getParameter(“fSubjectID”)。 3. 3.3. 最后转到代码窗口中,在页面的最后加上一条语句: response.sendRedirect(“subMan.jsp“); 使之执行操作后转到类别管理页。如下。 19.619.6 在线更新在线更新 新闻发布系统的内容每天都要更新,在线更新主要是新闻的内容进行更新。更 新的具体操作就是编辑新闻、删除新闻和添加新闻。在线更新所对应的网页文 件包括新闻管理页 newsMan.jsp、添加新闻页 newsAdd.jsp 和删除新闻页 newsDel.jsp。newsMan.jsp 页在浏览器中浏览的样式如图所示。 从图中可看出,newsMan.jsp 页的顶部显示当前新闻内容的类别,新闻类别的下 面就是当前新闻类别的标题,从新闻标题右面的操作项可以对新闻具体内容的 删除或添加,下方的文本框就是对某一新闻标题所对应的具体内容进行编辑。 为了对本页更清晰地讲解,把新闻内容管理页 NewsMan.jsp 分成 3 部分讲述, 显示当前新闻标题、显示当前新闻内容和编辑新闻内容。 新闻内容管理页面 19.6.1 显示当前新闻类别显示当前新闻类别 1. 1.1. 首先在站点文件窗口中打开没有添加动态数据和行为的 newsMan.jsp 文件。 2. 2.2. NewsMan.jsp 页对应的新闻类别标题要能根据所选的新闻类型动态 地显示。需要为这一部分定义一个记录集,记录集根据从 menu.jsp 页传 过来的参数进行选取记录。设置定义记录集的对话框如图所示。 在 SQL 处输入的语句如下: SELECT fSubjectName, fSubjectID FROM tNewsSubject WHERE fSubjectID = iSubjectID 该语句的功能是选取表 tNewsSubject 中的 fSubjectName 字段和 fSubjectID 字段,并且只选取字段 fSubjectID 的值等于变量 iSubjectID 的 值的记录。另外还需要在 Variables 处定义变量 iSubjectID 并赋初值,在 Name 处输入变量名 iSubjectID,在 Default Value 处输入 1 作为该变量的 初值,在 Run-time Value 处输入 request.getParameter(“fSubjectID“)取得 从上一页传过来的标记新闻类别的参数,作为该语句运行时的值。 3. 3.3. 定义好记录集后,把记录集 rsCurSubject 中的 fSubjectName 字段绑 定到页面【类别】项中。如图所示。 向【类别】处绑定动态数据 19.6.2 显示当前新闻标题显示当前新闻标题 显示当前新闻标题就是根据在 menu.jsp 页所选的新闻类别,向 NewsMan.jsp 页 传递参数,显示当前用户所选择的新闻类别的标题。而这部分动态内容所对应 的记录集就是根据这个参数取得的。 根据新闻标题可以编辑相应的具体内容。所以,需要为这一部分添加一个 Go To Detail Page 服务器行为。要同时显示多条新闻标题,需要添加 Repeat Region 服务器行为。如果没有某一类型的新闻,则新闻标题不显示,可以添加一种 Show Region 服务器行为实现此功能。如果不显示新闻标题,则显示【没有新 闻!添加新闻】,并且【添加新闻】设置为动态链接。还要把【添加】和【删 除】字样分别设置为动态链接。 在新闻标题这一部分,有两组动态导航链接,从这两组导航链接可以查看当前 类型的所有新闻。可以用扩展的服务器行为现实这组动态链接。 制作“显示当前新闻标题”页面 1. 1.1. 首先为这部分动态内容建立记录集。建立记录集的对话框如图所示。 定义该记录集时注意从表 tNews 中选取数据。只需要选取 fNewsID、fTopic 和 fDate 三个字段。fNewsID 字段保存的是表中新闻的 编号,它惟一标识一条新闻;fTopic 保存的是新闻的标题,fDate 保存 是新建新闻的日期。 Variables 中定义变量 iSubjectID 并赋初值:Name:iSubjectID;Default Value:1;Run- time Value: request.getParameter(“fSubjectID“)取得从上一页传过来的标记新闻类别参数,作为运行 时的值 在 SQL 输入的语句如下: SELECT fNewsID, fTopic, fDate FROM tNews WHERE fSubjectID = iSubjectID ORDER BY fDate DESC 这个语句的功能与建立记录集 rsCurSubject 时输入的语句功能相似,只是语句 的最后多加了一个 ORDER BY fDate DESC 子句,这个子句的功能就是按日期 的倒序排列从表中取得的记录,从页面的内容上说就是先列出最新的新闻标题。 2. 2.2. 向页面绑定动态数据。把 fTopic 字段和 fDate 字段分别绑定到显示 新闻类别的下面表格标题处和日期处。 3. 3.3. 为新闻标题添加 Go To Detail Page 服务器行为。选中 rsNewsResult.fTopic 在服务器行为监视器中打开 Go To Detail Page 服 务器行为对话框。如图所示。 链接到 newsMan.jsp 页的同时,把 rsNewsResult 记录集当前记录的 fNewsID 字段的值 作为参数 fNewsID 的值传递过去。另外,newsMan.jsp 页在运行时需要一个 fSubjectID 参数来标明当前新闻类别,所以把 URL parameters 复选框打勾,以传递当前页面的 fSubjectID 参数到下一个页面。实际上,当前页面是 newsMan.jsp,下一个页面也是 newsMan.jsp,它是一个结果页和细节页在一个页上的页面。如果不把 URL parameters 复选框打勾,下一个 newsMan.jsp 页面就会“忘掉”fSubjectID 这个 URL 参数,造成当 前新闻类别显示不正确 4. 4.4. 添加 Go To Detail Page 服务器行为时生成的代码出现了一个 bug。 下面我们来修正 Ultradev 4 的这个 bug。 为新闻标题添加 Go To Detail Page 服务器行为,可以通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论