jsp新闻发布系统设计参考文档

上传人:仙*** 文档编号:35744201 上传时间:2021-10-28 格式:DOC 页数:34 大小:218.75KB
收藏 版权申诉 举报 下载
jsp新闻发布系统设计参考文档_第1页
第1页 / 共34页
jsp新闻发布系统设计参考文档_第2页
第2页 / 共34页
jsp新闻发布系统设计参考文档_第3页
第3页 / 共34页
资源描述:

《jsp新闻发布系统设计参考文档》由会员分享,可在线阅读,更多相关《jsp新闻发布系统设计参考文档(34页珍藏版)》请在装配图网上搜索。

1、第第 1919 章章 新闻发布系统新闻发布系统教学要求 学会分析设计一个较复杂的新闻发布系统 学会制作较复杂的动态新闻页 学会设计动态新闻的管理模块 领会 Go To Related Page 的用法 能够综合应用 Ultradev 4 设计一个较复杂的网站19.119.1 分析分析新闻发布系统分两大功能模块:供所有用户查看的动态新闻显示模块和只供管理员进行管理新闻及相关内容的新闻管理模块,也就是用户界面和管理界面。19.1.1 用户界面分析用户界面分析用户界面所包含的文件用户界面所包含的文件 news.jsp 该页是查看新闻的主页面。包括新闻类别、新闻标题等内容。如图所示的是制作好的 new

2、s.jsp 页在浏览器中的样子。动态新闻页 more.jsp 该页用来显示所有新闻内容。在 news.jsp 有一个【更多新闻】链接,该链接就是指向该页的。 ShowNews.jsp 该页用来显示新闻具体内容。news.jsp 中的新闻标题就是链接到该页的。 Buttom.htm 和和 head.htm 这两个页是供 news.jsp 和 more.jsp 嵌入用的,这样可以达到定制用户界面的页首和页尾的功能。相关数据表相关数据表 表 tNewsSubjectID表表 tNewsSubject 用来存储新闻类别。表中的每条记录有两个字段:fSubjectName 字段,用来保存新闻类别;fSu

3、bjectID 字段,用来保存标记新闻类别的标号,这个标号在表中是惟一的。如右图所示。 表表 tNews 用来存储新闻的具体内容。表中字段 fNewsID 保存的是每条记录的编号,这个编号惟一标识一条新闻。字段 fTopic 保存着新闻标题,字段 fContent 保存着新闻的具体内容,字段 fDate 保存着录入新闻时的日期,字段 fAuthor 保存着新闻的作者,字段 fKeyWords 保存着查找新闻的所需要的关键字,字段 fSubjectID 保存着标记新闻类别的标号,这个标号在这个表中不是惟一的。如图所示。表 tNews19.1.2 管理界面分析管理界面分析新闻管理系统结构新闻管理系

4、统结构新闻管理系统可分为密码管理密码管理、类别管理类别管理和新闻类别管理新闻类别管理 3 部分。这 3 个功能模块通过一个 menu.jsp 页联系起来。 与类别管理相关的文件与类别管理相关的文件这个功能模块包括以下 4 个网页文件。 subMan.jsp 通过该页可以完成对管理类别的编辑、添加和删除的操作。 SubDel.jsp 删除新闻类别。 SubEdit.jsp 编辑现有的新闻类别。 SubAdd.jsp 添加新闻类别。与新闻内容管理相关的文件与新闻内容管理相关的文件这个功能模块包括以下 3 个网页文件。 NewsMan.jsp 通过该页可以完成对新闻内容的编辑、添加和删除的操作。编辑

5、新闻内容的操作在 NewsMan.jsp 页中完成。 NewsDel.jsp 删除新闻内容。 NewsAdd.jsp 添加新闻内容。其他相关文件其他相关文件 Menu.jsp 通过该文件来统一管理新闻系统的各项操作,即从该页可进入对管理系统的密码、新闻的类别和新闻的内容的操作。在浏览器中如图所示。menu.jsp 页 Adm.htm 这是“管理”部分的主页面,是一个网页框架文件,它由左右两个框架组成,左边的框架用来显示 menu.jsp 页,右边的框架用来显示与新闻类别管理相关的页和显示与新闻内容管理相关的页。利用网页框架,使管理员管理新闻系统的各个内容更方便,操作简单。 Login.jsp

6、登录页,这是设置安全机制所用到的。进入新闻管理系统前必须登录。 Sorry.htm 登录失败时转向该页。 Welcome.htm 首次进入新闻管理系统时在 Adm.htm 页右边的框中调用该页。说明新闻管理系统的功能。 PassMan.jsp 对本系统的密码管理。完成这个新闻管理系统主要是对这组文件的制做,以及合理的安排这些文件。相关数据表相关数据表新闻管理模块用到了 3 个数据表。表 tNewsSubject 和表 tNews,这两个表已介绍过。还有一个用于存储用户名和密码的表 tNewsAdmin。如图所示。表 tNewsAdmin表 tNewsAdmin 中字段 fAdminName 存

7、储登录管理系统时用的用户名,字段fAdminPass 存储登录管理系统时的密码。对新闻管理的各个操作,也就是对服务器端这 3 个表的操作。19.219.2 制作动态新闻页制作动态新闻页动态新闻页 news.jsp 的制作,使之能够动态地显示当日以及最近几天的新闻。由于新闻的标题和内容都存储在服务器端相应的数据表中了,更新或者添加新闻的操作是对服务器端相应数据表中的记录进行更新,或者向数据表中插入记录。所以,该页的制作主要是定义记录集,向页面添加动态内容,添加服务器行为。这个页动态内容分为 3 部分。 第 1 部分是能够动态地显示所有新闻的类别标题,也就是 news.jsp 中的链接【国际新闻】

8、、【国内新闻】、【体育新闻】等类别标题。这一部分动态内容就是对新闻进行分类。 第 2 部分是当前列出新闻的类别标题。也就是 news.jsp 中黑色加粗的【国际新闻国际新闻】。这一部分随着所选新闻类别变化而变化。它的作用只是标记当前列出的新闻标题的类别。 第 3 部分也就是 news.jsp 下半部分所示的新闻标题了。这一部分列出的新闻标题属于当前所选的新闻类别,从这一部分可以阅读相关新闻的详细内容。这 3 项需要分别建立记录集,因为它们需要的动态数据不同。但建立的这 3 个记录集还必须通过一个变量传递参数,以便使这 3 项显示的内容一致。可通过以下步骤来完成该新闻页。1.1.1. 建立记录集

9、。2.2.2. 向页面绑定动态数据。3.3.3. 添加服务器行为。其实该页还包含一个新闻搜索器,在第 10 章章中有详述,在此不做介绍。下面来制作这个动态新闻页 news.jsp。19.2.1 为动态新闻建立记录集为动态新闻建立记录集为该页添加动态内容的首先要建立相应的记录集。1.1.1. 在站点文件窗口中打开 news.jsp 文件。该页的静态部分已经设计好了。如图所示。新闻页的初始文件2.2.2. 打开数据绑定监视器,打开定义记录集对话框,建立一个取得新闻类别的记录集。单击监视器面板上的“+”按钮,从弹出的菜单上选择Recordset(Query)选项,打开定义记录集对话框,这时如果出现A

10、dvanced Recordset 对话框,单击 Simple 按钮,转到 Simple Recordset对话框。 在记录集对话框的 Name 文本框中输入 rsSubject。 在 Connection 下拉列表中选择 connBHP。 Table 下拉列表框选择存储新闻类别的数据表tNewsSubject。表tNewsSubject 只有两个字段:字段fSubjectName 和字段fSubjectID。这两个字段分别保存的是新闻类别和新闻类别编号,而建立的这个记录集需要从数据表tNewsSubject 中选取这两个字段,字段fSubjectName 中的数据作为第1部分的动态内容,字段

11、fSubjectID 中的数据作为动态参数。 在 Column 处选择 All 单选项。 在 Sort 处设置成按 fSubjectID 字段的升序排列。3.3.3. 单击 OK 按钮保存设置。这样第 1 个记录集已定义好了。设置好的记录集对话框如图所示。4.4.4. 为第 2 部分动态内容定义记录集。打开定义记录集对话框,如出现 Simple Recordset 对话框,单击 Advanced 按钮,转到 Advanced Recordset 对话框。设置如图所示。在 SQL 文本框中输入下面的 SQL 语句:SELECT fSubjectNameFROM tNewsSubjectWHERE

12、 fSubjectID =iNewsID这是一条 SELECT 语句。描述的仍是从表 tNewsSubject 中选取记录中的字段fSubjectName,最后的 WHERE 子句规定了只选取字段 fSubjectID 的值等于变量 strNewsID 中的值的记录。变量 iNewsID 中的值是数值型,这个数值标记着当前列出的新闻类别,这样就把当前新闻类别选取出来了。由于用到了变量iNewsID,所以必须在 Variables 处定义并赋初值。在 Name 列输入变量名 strNewsID,在 Default Value 列处输入 1 作为该变量的默认值,即第 2 部分动态内容在默认情况下列

13、出标记为 1 的新闻类型和 Run-Time Value 列处的运行时值request.getParameter(“iSubjectID”)。第 2、第 3 部分的动态内容所对应的记录集就是通过参数 iSubjectID 传递动态数据作为选取记录的条件,这样使得 3 部分的动态内容一致。5.5.5. 为第 3 部分动态内容定义记录集。打开高级记录集对话框。设置如图所示。在 SQL 处输入 SQL 语句如下:SELECT fTopic, fNewsIDFROM tNewsWHERE fSubjectID = iCurrentSubIDORDER BY fDate DESC这个 SELECT 语句

14、是从数据表 tNews 中选取记录。WHERE 子句规定了只选取字段 fSubjectID 值等于 iCurrentSubID 变量值的记录,并且只取记录的 fTopic 字段和 fNewsID 字段。子句 ORDER BY fDate DESC 规定了记录按字段 fDate 中的值(也就是日期)从大到小排序,从动态新闻页的内容上说就是先显示最近发布的消息。DESC 规定按字段值的降序排序,ASC 规定按字段值的升序排序。上面语句仍用到了变量,所以必须在 Variables 处定义初值。在 Name 列输入变量名 iCurrentSubID,在 Default Value 列处输入 1 作为该

15、变量的默认值,即第 3部分动态内容在默认情况下列出标记为 1 的记录,和 Run-Time Value 列处的运行时值request.getParameter(“iSubjectID”) 。向这个变量传递参数的值同向第 2 部分动态内容传递参数的值相同。19.2.2 使新闻动态显示使新闻动态显示及时性是新闻的要素之一,必须使新闻动态显示在页面上。所以,建立了记录集后,开始向页面绑定动态数据。这一操作很简单,添加步骤如下。1.1.1. 向第 1 部分动态内容添加动态数据。添加动态数据的位置如图所示的两条粗线之间的表格中,也就是图中光标所在的位置。第 1 部分添加动态数据的位置2.2.2. 打开数

16、据绑定监视器,单击记录集 rsSubject 前的“+”号,展开该记录集。选中 fSubjectName 字段,然后把光标放在上图所示的表格中。3.3.3. 单击数据绑定监视器面板上的 insert 按钮,这样动态数据就添加到相应的位置了。4.4.4. 按照上面的步骤向第 2 部分和第 3 部分动态内容添加动态数据。把记录集 rsCurrentSubject 中的 fSubjectName 字段和记录集 rsNews 中的fTopic 字段分别绑定到第 2 部分动态内容处和第 3 部分动态内容处。添加了动态数据的位置如图所示的 rsCurrentSubject.fSubjectName和rsN

17、ews.fTopic 的两个占位符。向第 2、3 部分添加动态数据的位置以上 4 个步骤,就把动态数据绑定到了动态新闻页 news.jsp 上了。19.2.3 完善新闻页完善新闻页建立了记录集、添加了动态数据,还需要向页面添加以下 4 种服务器行为使该页完善起来。 添加添加 Repeat Region 服务器行为服务器行为 使第 1 部分的新闻类别全部显示出来,使第 3 部分的新闻标题多条显示或全部显示出来。 添加添加 Go To Detail Page 服务器行为服务器行为 根据第 1 部分的类别标题在第 3部分显示不同类别的新闻标题。从新闻标题可进入具体新闻内容。 添加添加 Show Re

18、gion 服务器行为服务器行为 使新闻页 news.jsp 上的【没有新闻】只在没有新闻的情况下显示,若有新闻就使之隐藏起来。下面步骤就是为该页添加这些服务器行为。 添加添加 Go To Related Page 服器行为服器行为 以便从【更多新闻】跳转到具有更多新闻的页。 添加 Repeat Region 服务器行为1.1.1. 把光标放在第 1 部分动态数据位置上的表格中,用鼠标单击文档窗口下方的标签。选中表格中的单元格。22 2. . 这个表格只有1 行 1 列,选标签和标签虽然看起来都一样,但选标签可以使新闻类别标题显示在一行上。在添加了Repeat Region 服务器行为后,服务器

19、端在执行与此服务器行为对应的程序时,就生成 1 个 1 行多列的表格HTML 代码,每个单元格存放一个新闻类别标题。若选标签,则生成1 个 1 列多行的表格。3.3.3. 打开服务器行为监视器。单击监视器面板上的“+”按钮,从弹出的菜单上选择 Repeat- Region 选项。44 4. . 这时弹出对话框。在对话框的Recordset 下拉列表中选择与第1 部分动态内容对应的记录集rsSubject,在 Show 处选择 All Records 单选框,即显示所有新闻类别标题。5.5.5. 用鼠标点击rsNews.fTopic占位符选中这个动态文本。按照步骤2、3 添加 Repeat Re

20、gion 服务器行为。在设置 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 下拉列

21、表中选择 fSubjectIDfSubjectID 字段。这时rsSubject.fSubjectName处多了一道下划线,并且用不同颜色的显示,表示是一个链接区域3.3.3. 同样的方法,用鼠标单击第 3 部分动态内容处的rsNews.fTopic占位符。为其添加动态链接。其 Go To Detail Page 行为对话框的设置如图所示。Recordset 下拉列表中选择记录集 rsNews;Column 下拉列表中选择字段 fNewsID4.4.4. 该链接所指向的页最好在新窗口中打开。所以,还要对其属性设置一下。选中该动态文本。然后选择 Window 菜单下的 Properties 选项

22、,打开属性浮动面板。单击 Target 右边的下三角选择 _blank 选项。如图所示。这样设置后,在浏览器点击此链接时,所链接的页将在新窗口中出现。在 news.jsp 页面上,可看到有一个【没有新闻】的字样。这个字样应该在没有新闻的情况下出现。所以,需要对【没有新闻】字样添加 Show Reigion 中的一个服务器行为。5.5.5. 选中该字样。单击服务器行为面板上的“+”按钮,从弹出的菜单上选择 Show Region 中的子项 Show If Recordset Is Empty。6.6.6. 这时弹出设置该行为的对话框。设置如图所示。对话框中的 Recordset 处一定选择 rs

23、News,因为该服务器行为是针对记录集 rsNews 的news.jsp 页面上还有一个【更多新闻】的链接。从这个链接可以看到更多新闻。设置链接需要为其添加一个 Go To Related Page 服务器行为,即转到相关页。这个行为可以向所跳转的页传递参数。从这个链接进入到相关页时,必须把该页的参数传递过去。使正浏览的动态新闻页的内容与所要转到的更多新闻页的列出的新闻内容保持一致。也就是说,如果正在浏览的新闻标题属于国内新闻,那么跳转到更多新闻页时,所列出的新闻标题仍属于国内新闻。在窗性窗口中设置的链接参数是传不过去的。所以,必须用此服务器行为。7.7.7. 打开服务器行为监视器,单击面板上

24、的“+”按钮,选择 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 ) % A HREF=more.jsp?更多新闻 . 用 rsNews_total 5 作为 if 语句

25、的条件,即新闻多于 5 条时显示【更多新闻】链接,rsNews_total 是在定义记录 rsNews 时自动生成的变量,其值就是记录的总数。动态新闻页的服务器行为也就添加完了,该页也就制作好了。保存所做的工作。19.2.4 制作显示更多新闻页制作显示更多新闻页如果经常上网的话,就会经常见到【更多】字样的链接,以便显示更多同类相关内容,在本例中也使用了一个【更多新闻】的链接,通过这个链接可以显示所有同类新闻。这个链接的设置在上一节中已讲述,现在用同样的方法来添加一个此链接指向的页 more.jsp。制作显示更多新闻页 more.jsp 只需在新闻页 news.jsp 的基础上添加一组导航链接,

26、通过这个链接可以查看所有相关新闻。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. 这时弹出

27、 Recordset Navigation Bar 对话框,记录集选择 rsNews,并选择 Images 单选按钮。如图所示。5.5.5. 然后把光标放在该表格的第 1 个单元格内,选择 Insert 菜单下的Live ObjectRecordset Navigation status 选项。在弹出的对话框中注意选择记录集 rsNews,如图所示。把导航状态修改成rsNews_first -rsNews_last /rsNews_total的样子。如图所示。页面导航状态也可以在新闻标题的下再添加一组导航按钮及状态条。在 news.jsp 页的基础上添加了两组动态链接后,显示更多新闻页的 mo

28、re.jsp 就设计好了。19.2.5 显示新闻具体内容显示新闻具体内容现在制作一个显示新闻具体内容的页。这个页的设计非常简单,只需定义一个记录集,绑定动态数据到页面就可以了。 显示新闻具体内容1.1.1. 打开站点文件窗口中的 showNews.jsp 页。2.2.2. 打开数据绑定监视器,建立一个记录集。下图所示的就是建立该页记录集的对话框,按照图中所示设置参数。在 SQL 文本框中输入的 SQL 语句如下。SELECT fContentFROM tNewsWHERE fNewsID = iCurNewsID本语句是个 SELECT 语句,所描述的是根据 WHERE 子句的规定从表tNew

29、s 中选取记录。WHERE 规定了只选取字段 fNewsID 的值等于变量txtCurNewsID 的值的记录。在定义这个记录集时用到了变量iCurNewsID,所以,还需要在 Variables 处的文本框中定义。在 Name 列处输入变量名 iCurNewsID;在 Default Value 列处输入默认值 1;在 Run-time Value 处输入 request.getParameter(“fNewsID”)。这样该页就根据news.jsp 页或者 more.jsp 页传过来的参数选取记录集。定义记录集对话框3.3.3. 建立了记录集之后,开始向页面绑定动态数据。展开记录集rsNe

30、wsDetail,选择 fContent 字段,单击数据绑定监视器面板下面的Insert 按钮。这样就把所需要的动态数据绑定到页面上了。绑定该动态数据,不需定位页面中的位置。动态新闻页及相关的页已经完成了。保存所有的工作。19.319.3 导航页面导航页面新闻管理模块中各页面可通过一个导航页面来调用。在管理新闻时,首先要调出导航页面,从导航页面进入管理新闻的各页面。这个导航页面的初始文件如图所示。 制作 menu.jsp 页1.1.1. 在站点文件窗口中打开 menu.jsp 文件。该页面中的【管理密码】与【管理类别】这两个链接为静态的,分别指向密码管理页 PassMan.jsp和类别管理页

31、SubMan.jsp。初始文件中已添加好了。2.2.2. 在【新闻】下面的表格中添加管理新闻具体内容的链接。这一项由多个链接组成,一个链接对应一个新闻类别,因为管理模块中有新闻类别的管理,管理类别可以添加类别或者删除类别,所以这一组链接要设置成动态的,在正行修改新闻类别时,也会动态变化。这个导航页面采用了网页框架。框架的左边是网页文件 menu.jsp,右边是管理模块的说明文件。在进入新闻管理系统时框架的左边调用的一直是 menu.jsp,右边的框架首先调用 welcome.htm文件进行说明一下新管理系统所管理的内容。需要这义一个记录集,所定义记录集的对话框如图所示。从表 tNewsSubj

32、ect 中选取记录集,因为表 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. 保存文

33、件。因为 adm.html 是个框架文件。需要选择 File 菜单下的Save All Frames 选项进行保存。19.419.4 密码管理密码管理客户端的计算机只能访问到新闻发布系统的新闻内容,而对新闻的管理只能由新闻发布系统的管理员进行管理,不允许浏览者随便修改或添加新闻的内容。所以,新闻发布系统的管理模块必须设置一定的权限。可以为新闻管理系统设计一个密码管理页,为管理员修改密码用。 制作密码管理页 PassMan.jsp管理模块的密码存储在服务器端相应的数据表中。由于密码只能有一个,本页主要功能也就是修改密码,添加 Update record 服务器行为可以实现其功能。再添加一个 Va

34、lidate Form 行为检验窗体对象中是否输入了密码。可按以下步骤添加两种行为。1.1.1. 在站点文件窗口中打开 PassMan.jsp 文件。2.2.2. 在新密码提交到服务器端前,还要在客户端验证一下 Form 中各窗体对象中是否输入了新密码,以及两次输入密码是否相同。所以首先要添加一个 Validate Form 服务器行为。选中 Form,选择 Window 菜单下的 Behaviors 选项。打开 Behaviors 行为监视器。PassMan.jsp3.3.3. 单击面板上的“+”按钮,从弹出的菜单上选择 Validate Form 选项,打 Validate Form 行为

35、对话框。按图所示进行设置。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.v

36、alue=;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 字段和保存密码的 fAdm

37、inPass 字段,要定义成选取所有的字段(All)7.7.7. 定义了记录集后,开始添加一个 Update record 服务器行为。打开Update record 服务器行为对话框,按图所示进行设置。更新记录也就是更新记录中 fAdminName 字段的值与所定义的记录集中当前记录 fAdminName 字段的值相同的记录,fAdminName 字段中的值在表中必须是惟一的。定义记录集的作用就是为更新记录提供条件。8.8.8. 更新表中的记录后,转到 subMan.jsp 页。在 Form Elements 处设置成 fAdminPass 字段的值修改为窗体 txtNewsPass 中的值

38、。所修改记录的 fAdminPassfAdminPass 字段的值应该是当前记录的 fAdminPassfAdminPass 字段的值19.519.5 新闻类别管理新闻类别管理新闻类别管理包括对新闻类别的编辑、删除和新建类别,管理员也就是通过这3 个操作来管理新闻类别的。19.5.1 主页面主页面类别管理的主页面如图所示。管理员通过该页选择某一个操作,编辑、删除或新建类别,与这 3 个操作相关的页分别是 SubEdit.jsp 页、SubDel.jsp 页和 SubAdd.jsp 页,而 SubEdit 页和SubDel 页所进行的具体操作是根据由类别管理的主页面传递过来的参数来判断编辑或删除

39、表中的哪一条记录。主页面应把所有新闻类别列出来。编辑管理类别的主页面所进行的操作就是在给出的静态页面的基础上定义记录集和添加几种服务器行为。1.1.1. 首先在站点文件窗口中打开 SubMan.jsp 文件。2.2.2. 定义记录集,向页面绑定动态数据。定义记录集就是从表tNewsSubject 中取出记录,动态地显示所有新闻类别。定义记录集时,选取字段的项设置成选取所有的字段,显示记录的顺序设置成按fSubjectID 字段的升序排序。记录集的名最好取成 rsSubject。设置好的记录集对话框如图所示。绑定动态数据。只需把记录集 rsSubject 中的 fSubjectName 字段和f

40、SubjectID 字段分别绑定到 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 文件

41、名。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 标签 ,选中页

42、面的所有内容。单击行为监视器中的“+”按钮,从弹出的菜单上选择 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

43、 Form 行为的目的是把修改后的类别在提交给服务器之前验证窗体对象中是否有内容。只有窗体对象中不为空,才能把修改后的结果提交到服务器端对相应的数据表中的记录进行修改。如图所示进行添加该行为。2.2.2. 定义记录集。编辑新闻类别就是对存储新闻类别的数据表中的记录进行修改,需要用 Update Record 服务器行为,添加该服务器行为的前提要定义一个记录集。按下图所示进行定义记录集。定义该记录集需要设置取得记录的过滤器,就是根据从管理类别的主页面 SubMan.jsp 传过来的参数进行选取记录集。3.3.3. 定义完记录后,分别把 fSubjectID 字段和 fSubjectName 字段

44、绑定到Form 中的类别 ID 和类别处。绑定后如图所示。4.4.4. 添加 Update Record 服务器行为。设置 Update Record 服务器行为对话框如图所示。Unique Key Column 下拉列表中选择 fSubjectID 字段作为修改表 tNewsSubject 中某一个记录的依据,fSubjectID 字段的值在表 tNewsSubject 中是惟一的19.5.3 新建新闻类别新建新闻类别新建新闻类别在服务器端所进行的操作就是向表 tNewsSubject 中插入一条记录。所以完成该页需要添加 2 个行为:一个是用来在客户端验证窗体对象中是否有内容的 Valid

45、ate Form 行为;一个就是用来向表 tNewsSubject 中插入记录的Insert Record 服务器行为。样式如图所示。设计好的 SubAdd.jsp 文件1.1.1. 按下图所示进行添加 Validate Form 行为。 注意把用来输入新闻类型编号的窗体对象设置为数值型(Number)2.2.2. 按下图所示进行添加 Insert Record 服务器行为。在设置该对话框时注意 Form Elements 处的数据类型要匹配,以及所插入记录的数据表。Insert Record 服务器行为对话框19.5.4 删除新闻类别删除新闻类别删除新闻内容在服务器端所进行的操作就是删除相应

46、数据表中的某些记录。该文件在执行时是不可见的。所完成该页需要定义一个 Prepared 完成对数据库的删除操作。1.1.1. 新建一个文档窗口,以 Subdel.jsp 保存该文件。2.2.2. 定义 Prepared。打开服务器行为监视器,单击面板上的“+”按钮,从弹出的菜单中选择 Prepared(Insert,Update,Delete)选项,打开定义Prepared 对话框。按图所示进行定义。在 SQL 处输入的语句如下。DELETE FROM tNewsSubject WHERE fSubjectID = iSubID 这个语句描述的是根据 WHERE 子句的规定来删除表 tNews

47、Subject 中的记录,而变量 iSubID 的值是从类别管理的主页面中传过来的。当然,还需要在Variables 处定义 iSubID 变量。在 Name 处输入 iSubID,在 Run-time Value 处输入 request.getParameter(“fSubjectID”)。3.3.3. 最后转到代码窗口中,在页面的最后加上一条语句:response.sendRedirect(subMan.jsp);使之执行操作后转到类别管理页。如下。19.619.6 在线更新在线更新新闻发布系统的内容每天都要更新,在线更新主要是新闻的内容进行更新。更新的具体操作就是编辑新闻、删除新闻和添加

48、新闻。在线更新所对应的网页文件包括新闻管理页 newsMan.jsp、添加新闻页 newsAdd.jsp 和删除新闻页newsDel.jsp。newsMan.jsp 页在浏览器中浏览的样式如图所示。从图中可看出,newsMan.jsp 页的顶部显示当前新闻内容的类别,新闻类别的下面就是当前新闻类别的标题,从新闻标题右面的操作项可以对新闻具体内容的删除或添加,下方的文本框就是对某一新闻标题所对应的具体内容进行编辑。为了对本页更清晰地讲解,把新闻内容管理页 NewsMan.jsp 分成 3 部分讲述,显示当前新闻标题、显示当前新闻内容和编辑新闻内容。新闻内容管理页面19.6.1 显示当前新闻类别显

49、示当前新闻类别1.1.1. 首先在站点文件窗口中打开没有添加动态数据和行为的newsMan.jsp 文件。2.2.2. NewsMan.jsp 页对应的新闻类别标题要能根据所选的新闻类型动态地显示。需要为这一部分定义一个记录集,记录集根据从 menu.jsp 页传过来的参数进行选取记录。设置定义记录集的对话框如图所示。在 SQL 处输入的语句如下:SELECT fSubjectName, fSubjectIDFROM tNewsSubjectWHERE fSubjectID = iSubjectID该语句的功能是选取表 tNewsSubject 中的 fSubjectName 字段和 fSub

50、jectID 字段,并且只选取字段 fSubjectID 的值等于变量 iSubjectID 的值的记录。另外还需要在 Variables 处定义变量 iSubjectID 并赋初值,在Name 处输入变量名 iSubjectID,在 Default Value 处输入 1 作为该变量的初值,在 Run-time Value 处输入 request.getParameter(fSubjectID)取得从上一页传过来的标记新闻类别的参数,作为该语句运行时的值。3.3.3. 定义好记录集后,把记录集 rsCurSubject 中的 fSubjectName 字段绑定到页面【类别】项中。如图所示。向

51、【类别】处绑定动态数据19.6.2 显示当前新闻标题显示当前新闻标题显示当前新闻标题就是根据在 menu.jsp 页所选的新闻类别,向 NewsMan.jsp 页传递参数,显示当前用户所选择的新闻类别的标题。而这部分动态内容所对应的记录集就是根据这个参数取得的。根据新闻标题可以编辑相应的具体内容。所以,需要为这一部分添加一个 Go To Detail Page 服务器行为。要同时显示多条新闻标题,需要添加 Repeat Region服务器行为。如果没有某一类型的新闻,则新闻标题不显示,可以添加一种Show Region 服务器行为实现此功能。如果不显示新闻标题,则显示【没有新闻!添加新闻】,并

52、且【添加新闻】设置为动态链接。还要把【添加】和【删除】字样分别设置为动态链接。在新闻标题这一部分,有两组动态导航链接,从这两组导航链接可以查看当前类型的所有新闻。可以用扩展的服务器行为现实这组动态链接。 制作“显示当前新闻标题”页面1.1.1. 首先为这部分动态内容建立记录集。建立记录集的对话框如图所示。定义该记录集时注意从表 tNews 中选取数据。只需要选取 fNewsID、fTopic 和 fDate 三个字段。fNewsID 字段保存的是表中新闻的编号,它惟一标识一条新闻;fTopic 保存的是新闻的标题,fDate 保存是新建新闻的日期。Variables 中定义变量 iSubjec

53、tID 并赋初值:Name:iSubjectID;Default Value:1;Run-time Value:request.getParameter(fSubjectID)取得从上一页传过来的标记新闻类别参数,作为运行时的值在 SQL 输入的语句如下:SELECT fNewsID, fTopic, fDateFROM tNewsWHERE fSubjectID = iSubjectIDORDER BY fDate DESC这个语句的功能与建立记录集 rsCurSubject 时输入的语句功能相似,只是语句的最后多加了一个 ORDER BY fDate DESC 子句,这个子句的功能就是按日

54、期的倒序排列从表中取得的记录,从页面的内容上说就是先列出最新的新闻标题。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 页在运行

55、时需要一个 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

56、。为新闻标题添加 Go To Detail Page 服务器行为,可以通过该链接把相应新闻标题所指向的新闻具体内容显示在本页下面的编辑区进行编辑,但只能通过新闻标题编辑一条新闻,若通过该链接再次编辑新闻的时候,就会出错。因为每次点击新闻标题链接,需要向编辑区传递一个 URL 参数,并且这个参数会被记住,所以当再次点击新闻标题处链接的时侯,URL 参数就会多出一个 fNewsID 参数。形如:newsMan.jsp?fNewsID=27&offset=0&fNewsID=33,造成语法错误。5.5.5. 转到代码窗口中,查找找到变量 MM_removeList,把变量MM_removeList

57、处的语句:String MM_removeList = index, MM_paramName ;修改成语句: String MM_removeList = index,fNewsID ,MM_paramName ;即在原语句处多加了 fNewsID 字符串,这样就可以去掉以前 URL 参数。6.6.6. 为【添加】字样设置动态链接。从【添加】链接进入到添加页时,所显示的新闻类别应与当前新闻管理页中的新闻类别相同。所以需要把从新闻管理页上一页即 menu.jsp 页传过来的参数(这个参数也就是标记新闻类别的字段 fSubjectID 的值)传递到添加新闻页。那么设置这个链接需要用 Go To

58、Related Page 服务器行为。7.7.7. 先选中【添加】字样,在服务器行为监视器中打开 Go To Related Page 服务器行为对话框。在 Related Page 处输入 newsAdd.jsp 文件名,注意选中 URL Parameters 处的复选框8.8.8. 为【删除】字样设置动态链接。【删除】链接所指向的删除页newsDel.jsp 所进行的操作是删除具体的新闻内容。这个动态链接需要把标记所要删除的新闻的参数(这个参数的值就是表 tNews 中 fNewsID 字段的值)传递到 newsDel.jsp 页,只有这样删除页 newsDel.jsp 才会知道应该删除哪

59、一条记录。设置这个链接需用 Go To Detail Page 服务器行为。9.9.9. 选中【删除】字样,在服务器行为监视器中打开 Go To Detail Page服务器行为对话框。设置好的 Go To Detail Page 服务器行为对话框如图所示。注意选中复选框 URL Parameters,使 newsDel.jsp 页执行完毕转向 newsMan.jsp 时显示的是删除前的新闻类别中的内容10.10.10. 为显示多条新闻标题添加重复域。选中动态数据所在的行,在服务器行为监视器中打开 Repeat Region 服务器行为对话框。设置成一次显示 5 条记录。如图所示。11.11.

60、11. Repeat Region 服务器行为设置的是一次显示 5 条记录,现在添加一组动态导航条。这样在当前新闻内容多于 5 条的情况下,也能浏览到未显示的新闻。首先把光标放到新闻标题上面的表格中。添加的结果如图所示。添加一组导航按钮12.12.12. 同样,在【没有新闻!添加新闻】下面的表格中添加一个动态导航条。如图所示。在标题下方添加一组导航条13.13.13. 为【没有新闻!添加新闻】信息添加 Show Region If Recordset Is Empty 服务器行为,在相应新闻内容为空的情况下显示此信息。该行为对话框如图所示。14.14.14. 把【没有新闻!添加新闻】信息中的【

61、添加新闻】设置成能够传递本页参数的链接,可利用 Go To Related Page 服务器行为。此链接指向newsAdd.jsp 页。注意向 newsAdd.jsp 页传递参数 fSubjectID。经过以上步骤的制作,完成了新闻标题处的制作。 新闻标题处的动态内容19.6.3 编辑新闻内容编辑新闻内容新闻内容管理页 NewsMan.jsp 下面的表单是用来编辑新闻内容的。要完成这部分内容,需要用到 Update Recordset 服务器行为,相应地需要定义一个记录集。又因为新闻类别是由新闻类别管理模块来管理,不是随便输入的,编辑区域内【类别】的修改最好通过选择菜单进行选择,菜单的选项是新

62、闻类别名,如果在新闻管理模块中对新闻类别做了改动,菜单的选项也应随之而改变,所以还需要为这个选择菜单定义记录集,绑定动态数据。如果某类新闻为空,则编辑就变得没有意义,所以需要为这一部分添加一个Show Region 服务器行为。最后再添加一个 Validate Form 行为,即不允许编辑为空就提交。 完成“编辑新闻内容”动态内容1.1.1. 为修改的内容建立记录集。因为所做的修改包括与具体新闻相关的内容,如作者、新建日期等,所以应取得所有字段。修改哪一条新闻具体内容,是通过新闻标题来选择的,那么建立的这个记录集一定把从新闻标题传过来的惟一的标识一条新闻的参数作为取得记录的条件,这样也就保证了

63、新闻标题与下面的编辑区的一致。在 SQL 处输入下面的语句就可以实现此功能。SELECT *FROM tNewsWHERE fNewsID = ifNewsID设置完毕的记录集对话框如图所示。单击 OK 保存设置。还需要考虑一个问题,rsNewsDetail 中的记录默认情况下应该是 rsNewsResult记录集中的当前记录的 fNewsID 字段值所对应的那条记录。这样可以保证用户点击导航链接后能把 rsNewsResult 记录集中当前记录显示在页面上的第 1 条记录的详细信息。解决的办法只需把参数 fNewsID 的初值设置为 rsNewsResult 记录集中的当前记录的 fNews

64、ID 字段的值就可以了。2.2.2. 转到代码窗口中,找到与 rsNewsDetail 记录集对应的一段程序:3.3.3. 在上面的语句中,注意到String rsNewsDetail _ ifNewsID = 1 这条语句,就是为参数赋初值的,可以看出,它的默认值为 1。现在我们需要做这样的更改,把 rsNewsResult 记录集中的当前记录的 fNewsID 字段值作为rsNewsDetail _ ifNewsID 变量的初值。所以上面程序段中红色部分修改成:首先利用 if 条件语句判断记录集 rsNewsResult 是否为空,也就是是否有当前新闻类别的新闻。如果没有当前新闻类别的新闻

65、,记录集rsNewsDetail 就为空,那么再执行rsNewsResult.getObject(fNewsID); 就会出错,因为这样给变量rsNewsDetail_TempiNewsID 赋值为-1,即不会执行rsNewsResult.getObject(fNewsID);语句,也使得记录集rsNewsDetail为空。这样初记录集的初始化在逻辑上也就正确了。4.4.4. 要使修改后的语句有意义,必须保证 rsNewsResult 记录集已经创建并且记录指针已经移到了合适位置。所以需要改变修改后的rsNewsDetail 记录集代码的位置。为了避免出现其他方面的错误,尽量把上面的这段记录集

66、代码往后移,移到为新闻标题添加的 Repeat Region服务器行为所对应的代码前面,这个位置是放置这段记录集代码的最后位置,不能再往后移了。下面红色代码部分是移动后的记录集rsNewsDetail 代码。 标题 日期 操作 A HREF=newsAdd.jsp?添加 A HREF=newsMan.jsp? A HREF=NewsDel.jsp?删除 5.5.5. 定义完记录集,就可以向编辑区绑定动态数据。绑定动态数据时,注意 fTopic 字段绑定到【标题】处,fDate 字段绑定到【日期】处,fAuthor 字段绑定到【作者】处,fKeyWords 字段绑定到【关键词】处,fContent 字段绑定到【正文】处。绑定后如图所示。向编辑区绑定动态数据6.6.6. 为选择菜单绑定动态数据。首先定义相应的记录集,按下图所示的进行设置。注意是从表 tNewsSubject 中选取记录7.7.7. 为选择菜单定义好记录集后,开始向【类别】项的选择菜单绑定动态数据。打开服务器行为监视器,单击服务器行为面板上的“+”按钮,从弹出菜单上选择 Dynamic List/Menu 选项,打开 Dyn

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!