如何在Struts 数据库应用程序中实现记录的删除、更新及链接 
  
[相关链接] 
《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.csdn.net/develop/article/28/28871.shtm 
《如何实现最简单的Struts程序》http://dev.csdn.net/develop/article/28/28946.shtm 
《Struts下拉框的实现》http://dev.csdn.net/develop/article/28/28956.shtm 
《Sruts单选框的实现》http://dev.csdn.net/develop/article/29/29042.shtm 
《Struts复选框的实现》http://dev.csdn.net/develop/article/29/29043.shtm 
《Struts程序各文件之间的关系(1)》http://dev.csdn.net/develop/article/29/29131.shtm 
《Struts程序各文件之间的关系(2)》http://dev.csdn.net/develop/article/29/29133.shtm 
《如何实现Struts 数据库应用程序(1)》http://dev.csdn.net/develop/article/29/29151.shtm 
《如何实现Struts 数据库应用程序(2)》http://dev.csdn.net/develop/article/29/29138.shtm 
《如何在Struts 数据库应用程序中实现分页显示(1)》http://dev.csdn.net/develop/article/29/29139.shtm 
《如何在Struts 数据库应用程序中实现分页显示(2)》http://dev.csdn.net/develop/article/29/29140.shtm 
《如何在Struts 数据库应用程序中实现记录的删除、更新及链接》 
《如何在Struts 数据库应用程序中实现记录的添加》 
《如何建立一个带登陆页面的Struts数据库应用程序》 
《如何建立一个带登陆页面及角色的Struts数据库应用程序》 
  
上述例子开发环境:Java Web Studio系列开发环境visual strutst版本。 
最新JavaWebStudio下载地址:ftp://210.36.64.79/kui 
上述例子源程序下载地址:ftp://210.36.64.79/kui 
  
重点提示:JSPOUT属性页的设置是本例唯一与《如何实现Struts 数据库应用程序》中的步骤不同之处,这是本例的核心内容。我们要做的仅仅是在JSPOUT属性页的设置中把“记录操作”选择项中分别选定记录的删除、更新及链接即可。 
  
  
[目标] 
本例的目标是实现一个简单的Struts 数据库应用程序。其功能是从SQL Server 2000中读取数据,并以表格的形式在输出页中显示出来。 
定义一个名为“Test”表的字段: 
  
录入一些测试数据: 
  
    
[效果] 
输入页面(选择“全部显示”): 
  
输出页面: 
  
选择“编辑”功能,并编辑表格中的数据: 
  
更新记录: 
  
  
[背景知识] 
  
  
[步骤] 
本例与《如何实现Struts 数据库应用程序》中的步骤相比,除了在Struts数据库应用文件向导中多一个JSPOUT属性页设置之外,其它步骤完全一样,这样相同的步骤详情见《如何实现Struts 数据库应用程序》。 
1、打开Visual Struts开发环境: 
从桌面JavaWebStudio快揵或BIN目录下的JavaWebStudio.exe文件启动JavaWebStudio的Visual Struts开发环境。 
2、建立一个“空的Struts数据库应用模板”应用程序: 
    选择菜单“文件”—“新建”—“新建项目”,弹出新建项目对话框,如图3-1所示: 
在对话框中选择“空的Struts数据库应用模板”,在项目名称中输入“DBApp”,package (包名)和位置(项目的路径)采用默认的值就行,当然也可以根据需要改变。最后点击“确定”按钮完成新项目的建立。 
在DBApp项目根目录下包含四个子目录和两个文件,这是JSPStudio项目的标准结构,最好不要改变它们默认的名称,否则会出现问题。 
3、利用Struts数据库应用文件向导建立新的应用: 
在JSPStudio文件管理器内点击鼠标右键,在弹出的菜单中选择“Struts数据库应用文件向导”进入Struts文件向导对话框,也可以选择菜单“文件”—“新建”—“Struts数据库应用文件向导”进入Struts文件向导对话框。 
在Struts文件向导对话框JSP文件标签下的文件名输入栏中输入“DbList”文件名,其它文件采用默认的设置。 
  
(1)输入文件名: 
  
(2)从数据源中导入SQL语句及数据表的字段信息(字段名和字段类型): 
(3)从数据据表中选择所需的表“Test”。 
需要特别注意的是,这里的“从数据源中导入SQL语句及数据表的字段信息”及“从数据据表中选择所需的表”仅仅是为了自动生成SQL语句及读取字段信息,这里完成可以直接手工输入,与该项目的数据库连接池的配置无关,下面第(4)点将另行配置数据库连接池。 
  
  
  
接下来配置数据库连接池,其它属性页可采用默认的就行了,下面直接转去数据连接配置属性页即可。 
  
(4)JSPOUT属性页设置: 
  
JSPOUT属性页的设置是唯一与《如何实现Struts 数据库应用程序》中的步骤不同之处,这是本例的核心内容。从上图可看出,我们要做的仅仅是把JSPOUT属性页的设置中把“记录操作”选择项中分别选定记录的删除、更新及链接即可。 
  
(5)配置数据库连接池: 
(省略) 
  
4、项目文件结构 
项目目录结构分析见《如何实现最简单的Struts程序》,这次Struts数据库应用文件向导自动生成了六个文件,其中web目录下是输入、输出两个JSP文件,src目录下是Java文件。除了文件名是我们输入之外,所有程序源代码都是文件向导自动生成的,所有的配置也是自动完成的。 
刷新JSPStudio文件管理器,这时发现web目录下自动生成了两个文件,分别是DbList.jsp和DbList.jsp,前者是输入JSP文件,后者是输出JSP文件;src\emptyprj目录下自动生成了四个文件,分别是DbList Action.java和DbList Form.java,前者是Action文件,后者是FormAction文件;还有是数据库操作文件DbList.java和DbListDAO.java,前者用于保存数据表记录的Bean,后者是数据库操作DAO文件。 
  
[特别提示]如果数据选择的是SQL Server 2000,需要把DAO文件中的下面代码: 
      //用SQL Server请加入下行:  
      //con.setAutoCommit(true); 
      //SQL Server 
都改写成如下代码: 
//用SQL Server请加入下行:  
      con.setAutoCommit(true);   //注意啦!!就是这一行,原来是注解掉了,现在是把注解去掉!! 
      //SQL Server 
通过上述改写,才能通过JDBC对SQL Server 2000进行记录更新、删除和添加等操作。 
  
5、编译、启动服务器、运行: 
   通过工具条上的按键分别编译项目及启动服务器,然后把开dbList.jsp并通过工具条上的“运行”按键运行dbList.jsp: 
  
  
  首先试一下全部显示功能,点击“全部显示”接钮,如果如下图所示: 
  
  
接下来试一下“编辑”功能: 
  
接下来是实现编辑一下表格内的数据: 
  
接下来是实现“更新”功能: 
  
  
通过上述步骤,实现了预计的目标功能。 
  
[程序源代码] 
对于程序源代码,本例唯一与《如何实现Struts 数据库应用程序》中的程序源代码不同之处,是dbListOut.jsp文件。不同之处在于在表格多了记录的删除、编辑、更新和分页功能,内容如下: 
<tr><td  align=middle colSpan=4 > 
<bean:write property='pagestr' name='dbListForm' filter='false' /> 
</td></tr> 
其它文件完全相同,下页是dbListOut.jsp文件源代码: 
<%@ page contentType="text/html;charset=GB2312" language="java" %> 
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> 
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %> 
  
<html:html> 
<head> 
<title></title> 
<html:base/> 
</head> 
<body bgcolor="white"> 
<table width="98%" border="1" bgColor="#E6F2E7"  
borderColorDark="#FFFFFF" borderColorLight="#008000" cellPadding="3" cellSpacing="0" > 
<tr bgcolor='#90C090'> 
<td><span CONTENTEDITABLE=true>序号</span></td> 
<td><span CONTENTEDITABLE=true>姓名</span></td> 
<td><span CONTENTEDITABLE=true>备注</span></td> 
<td><span CONTENTEDITABLE=true>删除</span></td> 
<td><span CONTENTEDITABLE=true>编辑</span></td> 
<td><span CONTENTEDITABLE=true>链接</span></td> 
  
</tr> 
<logic:iterate name='dbList' id='dbList' type='emptyprj.dbList' scope='request'> 
<logic:notEqual name='dbListForm' property='action' value='edit'>  
<tr> 
<td><bean:write name='dbList' property='序号' /></td> 
<td><bean:write name='dbList' property='姓名' /></td> 
<td><bean:write name='dbList' property='备注' /></td> 
<td><a href="dbListAction.do?action=delete&search=search&expression= 
<bean:write name='dbList' property='序号' />">删除</a></td> 
<td><a href="dbListAction.do?action=edit&search=search&expression= 
<bean:write name='dbList' property='序号' />">编辑</a></td> 
<td><a href="dbListAction.do?action=link&search=search&expression= 
<bean:write name='dbList' property='序号' />">链接</a></td> 
  
</tr> 
</logic:notEqual>  
<logic:equal name='dbListForm' property='action' value='edit'>  
<tr> 
<form  method='post' name='dbListForm' action= 
"/DBApp/dbListAction.do?action=update&search=search&expression= 
<bean:write name='dbList' property='序号' />"> 
<td><html:text name='dbList' property='序号' /></td> 
<td><html:text name='dbList' property='姓名' /></td> 
<td><html:text name='dbList' property='备注' /></td> 
<td><a href="dbListAction.do?action=delete&search=search&expression= 
<bean:write name='dbList' property='序号' />">删除</a></td> 
<td><html:submit value='更新'></html:submit></form > 
<form  method='post' action="dbListAction.do?action=reset&search=search&expression= 
<bean:write name='dbList' property='序号' />" ><html:submit value='取消'></html:submit> 
</form ></td> 
<td><a href="dbListAction.do?action=link&search=search&expression= 
<bean:write name='dbList' property='序号' />">链接</a></td> 
  
</tr> 
</logic:equal>  
</logic:iterate> 
  
<tr><td  align=middle colSpan=7 ><bean:write property='pagestr' name='dbListForm' filter='false' /></td></tr> 
  
</tr> 
</table> 
</body> 
</html:html> 
  
 
  
 
  |