DAO
						
				
				
						类
				
				
						
								+
						
				
				
						通用持久类
				
				
						
								+
						
				
				
						通用动态
				
				
						
								formBean
						
				
				
						类,实现数据增、删、改、查
				
				
						
								
								
								
						
				
		
		
				
						
								
										
												newxy(
												新坐标
												)
										
								
						
				
				
						技术运用之三
				
				
						
								
								
						
				
		
		
				
						
								
										 
								
						
				
		
		
				
						“DAO类”: net.newxy.dbm.BaseDAO或其子类;
				
		
		
				
						“通用持久类”: net.newxy.dbm.DynaDto;
				
		
		
				
						“通用动态formBean类”: net.newxy.struts_faces.DynaFormBean。
				
		
		 
		
				
						
						
						
								
								
						
				
		
		
				《
				
						DAO
				
				类
				
						+
				
				通用持久类,实现数据增、删、改、查》
				
						(
				
				又名《
		
		
				
						
								
										
												不同于hibernate,利用通用持久类实现数据增、删、改、查,可极大提高开发效率
								
						
				
		
		
				》
				
						)
				
				文章中介绍的数据增、删、改、查方法比
				
						hibernate
				
				的方法已简单很多,如果引入通用动态
				
						
								formBean
						
				
				
						类,开发效率会有更大提高。
				
						
						
				
		
		 
		
				
						
								net.newxy.struts_faces.DynaFormBean
						
						类的类图
				
		
		
				
						
								
										
												 
										
								
						
				
		
		
				
						
								
										
										
												
												
												
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
														
												
												
												
												
												
										
								
						
						
								
								
						
				
		
		
				
						一、利用通用动态formBean类,实现数据增、删、改
				
		
		
				
						
								
										struts
								
						
						
								的
								
										ActionServlet
								
						
						
								将用户
								
										submit
								
						
						
								来的数据绑定到
								
										net.newxy.struts_faces.DynaFormBean
								
						
						
								对象中,在后台,通过调用
								
										net.newxy.struts_faces.DynaFormBean
								
						
						
								的
								
										public Object getDto()
								
						
						
								、
								
										public Object get(String name) 
								
						
						
								方法将上传的数据提出,
								
										net.newxy.struts_faces.DynaFormBean
								
						
						
								起作传送数据的作用。
						
						
								
										
										
								
						
				
		
		
				
				
				
						
								(
								
										1
								
						
						
								)数据插入:
						
						
								Object update(Object dto) throws Exception;
						
				
		
		
				
						举例:
				
		
		
				
						public ActionForward update(ActionMapping actionMapping, ActionForm actionForm,
				
		
		
				
						                              HttpServletRequest httpServletRequest,
		
		
				
						            HttpServletResponse httpServletResponse) throws Exception{
		
		
				
						            ......
		
		
				
						            net.newxy.struts_faces.DynaFormBean form=( net.newxy.struts_faces.DynaFormBean)actionForm;
				
						
						
				
		
		
				
						try{
				
		
		
				
						
								net.newxy.dbm.DynaDto dynaDto=( net.newxy.dbm.DynaDto)form.getDto();
						
						
								
								
						
				
		
		
				
						net.newxy.dbm.BaseDAO dao=new net.newxy.dbm.BaseDAO(); 
				
		
		
				
						dynaDto.set_table("table1");//设置表名
				
		
		
				
						
								        
								Object result=dao.update(dynaDto);
						
				
		
		
				
						
								    }catch(Exception e){
				
		
		
				
						
								        ......
				
		
		
				
						}
				
		
		
				
						......
				
		
		
				
						}
				
		
		
				
						jsp页面不上传主关键字段值,主关键字段值会自动得到,是原有最大值加一。
				
		
		
				
						如果jsp页面上传了主关键字段值,如:表单中有<html:text property=”id” />用户键入了id值。newxy(新坐标)会检查赋给的主关键字值是否已存在,如果存在,作更新(update)操作,如果不存在,作插入(insert)操作。
				
		
		
				
						判断是更新还是插入操作,可以根据返回的result值来判断,如果result值为空,是作更新操作,如果result不空是作插入操作。
				
		
		
				
						Object result=dao.update(dynaDto);
				
		
		
				
						如果想需要知道自动赋给的主关键字段值,可以用如下方法:
				
		
		
				
						Object result=dao.update(dynaDto);
				
		
		
				
						Object idValue=null;
				
		
		
				
						If(result!=null)
				
		
		
				
						idValue=((DynaDto)result).get(“id”);
				
		
		
				
						
								idValue
						
						就是自动赋给的主关键字段值。
				
		
		
				
						
								 
						
				
		
		
				
						
								(2)数据更新:
						
				
		
		
				
						举例:
				
		
		
				
						
								 
						
				
		
		
				
						public ActionForward update(ActionMapping actionMapping, ActionForm actionForm,
				
		
		
				
						
								                              HttpServletRequest httpServletRequest,
				
		
		
				
						
								            HttpServletResponse httpServletResponse) throws Exception{
				
		
		
				
						
								            ......
				
		
		
				
						
								   DynaFormBean form=(DynaFormBean)actionForm;
						
								
								
						
				
		
		
				
						try{
				
		
		
				
						
								DynaDto dynaDto=(DynaDto)form.getDto();
						
						
								
								
						
				
		
		
				
						net.newxy.dbm.BaseDAO dao=new net.newxy.dbm.BaseDAO();
				
		
		
				
						dynaDto.set_table("table1");
				
		
		
				
						
								       
								Object result=dao.update(dynaDto);
						
				
		
		
				
						
								   }catch(Exception e){
				
		
		
				
						
								        ......
				
		
		
				
						}
				
		
		
				
						......
				
		
		
				
						}
				
		
		
				
						数据更新方法与数据插入方法相同,需注意:如果
						
								
										dynaDto
								
						
						
								中没有主关键字段值,即
								
										dynaDto.get(“id”)==null
								
						
						,或
						
								
										dynaDto.get(“id”)
								
						
						
								所得主关键字段值在表中不存在
						
						,
						
								dao.update(dynaDto)
						
						方法仍然作插入操作。
				
		
		
				
						在进行
						
								dao.update(dynaDto)
						
						前,可以判断数据是否已存在于表中:
				
		
		
				
						Object masterKey=dynaDto.get(“id”);
				
		
		
				
						Object record=null;
				
		
		
				
						if(masterKey!=null)
				
		
		
				
						record=dao.load(dynaDto);
				
		
		
				
						如果
						
								masterKey==null 
						
						或
						
								record==null
						
						,表中不存在该条记录,
						
								dao.update(dynaDto)
						
						作插入操作,否则该条记录存在于表中,作更新操作。
				
		
		
				
						那么在
						
								jsp
						
						页面上如何保证用户录入的是新插入数据或是编辑修改的数据呢?参看本文后面部分
						
								
										
												
														在
														jsp
														页面上新建、编辑数据
												
										
								
						
				
		
		
				
						
								(
								
										3
								
						
						
								)数据删除
								
										
										
								
						
				
		
		
				
						举例:
						
								
								
						
				
		
		
				
						public ActionForward remove(ActionMapping actionMapping, ActionForm actionForm,
				
		
		
				
						
								                              HttpServletRequest httpServletRequest,
				
		
		
				
						
								            HttpServletResponse httpServletResponse) throws Exception{
				
		
		
				
						
								            ......
				
		
		
				
						
								
										            DynaFormBean form=(DynaFormBean)actionForm;
								
										
										
								
						
				
		
		
				
						try{
				
		
		
				
						
								
										    //
						
						删除
						
								formBean
						
						当前数据对应的记录:
				
		
		
				
						
								Object record=form.getDto();
						
						
								
								
						
				
		
		
				
						
								net.newxy.dbm.BaseDAO dao=new net.newxy.dbm.BaseDAO();
						
				
		
		
				
						
								dynaDto.set_table("table1");//
						
						设置表名,如果上传数据的
						
								jsp
						
						页面表单中没有
						
								<html:hidden name=”_table” value=”table1”/>
						
				
		
		
				
						
								
										        
										dao.remove(dynaDto);
								
						
				
		
		
				
						
								
										 
								
						
				
		
		
				
						
								
										
												        //
								
								httpServletRequest.getParameter(“_index”)
						
						值代表记录号,删除该条记录
						
								
								
						
				
		
		
				
						
								
										        String index= httpServletRequest.getParameter(“_index”);
						
				
		
		
				
						
								
										        
										Object record=form.getDto(index);
								
						
				
		
		
				
						
								
										        
										dao.remove(record);
								
						
				
		
		
				
						
								
										    }catch(Exception e){
						
				
		
		
				
						
								
										        ......
						
				
		
		
				
						}
				
		
		
				
						......
				
		
		
				
						}
				
		
		
				
						
								 
						
				
		
		
				二、利用通用动态formBean类,实现多项查询
		
		
				
						
								   
								1、后台代码
						
				
		
		
				
						
								       public ActionForward find(ActionMapping actionMapping, ActionForm actionForm,
				
		
		
				
						
								               HttpServletRequest httpServletRequest,
				
		
		
				
						
								               HttpServletResponse httpServletResponse) throws Exception{
				
		
		
				
						
								           
						
						DynaFormBean form=(DynaFormBean)actionForm;
						
								
								
						
				
		
		
				
						
								           net.newxy.util.FormBeanUtils.
						createForm(form,httpServletRequest);
				
		
		
				
						
								           .
						.....
				
		
		
				
						
								       }
				
		
		
				
						
								    net.newxy.util.FormBeanUtils.
						createForm(form,httpServletRequest)方法将查询结果放在form的_coll属性中。后台代码极其简单,
				
		
		
				
						那么httpServletRequest中包含了什么数据?下面是jsp页面表单对上传数据的组织。
						
								
								
						
				
		
		
				
						
								   
								2、前台查询条件的组织
						
				
		
		
				
						<html:form action="/myAction.do?method=find">
				
		
		
				
						
								  <html:hidden property="_dao" value="dao.myDAO1"/>
				
		
		
				
						
								  <html:hidden property="_sql" value="select a.industry,b.* from industry as a,enterprise as b where{a.code=b.industry_code}"/>
				
		
		
				
						
								  <table border="1">
				
		
		
				
						
								    <tr>
				
		
		
				
						
								      <td>逻辑</td>
				
		
		
				
						
								      <td colspan="2">
				
		
		
				
						
								        <html:radio property="_lg" value="1">并且</html:radio>
				
		
		
				
						
								        <html:radio property="_lg" value="0">或者</html:radio>
				
		
		
				
						
								      </td>
				
		
		
				
						
								    </tr>
				
		
		
				
						
								    <tr>
				
		
		
				
						
								      <td>行业</td>
				
		
		
				
						
								      <td>等于</td>
				
		
		
				
						
								      <td>
				
		
		
				
						
								        <nhtml:hidden property="_item1" value="a.code"/>
				
		
		
				
						
								        <html:hidden property="_item1" value="="/>
				
		
		
				
						
								        <html:select property="_item1">
				
		
		
				
						
								          <html:option value=""></html:option>
				
		
		
				
						
								          <html:option value="A">农、林、牧、渔业</html:option>
				
		
		
				
						
								          <html:option value="B">采矿业</html:option>
				
		
		
				
						
								          <html:option value="C">制造业</html:option>
				
		
		
				
						
								        </html:select> 
				
		
		
				
						
								      </td>
				
		
		
				
						
								    </tr>
				
		
		
				
						
								    <tr>
				
		
		
				
						
								      <td>企业名称</td>
				
		
		
				
						
								      <html:hidden property="_item2" value="b.name"/>
				
		
		
				
						
								      <td>
				
		
		
				
						
								        <html:select property="_item2">
				
		
		
				
						
								          <html:option value=""></html:option>
				
		
		
				
						
								          <html:option value="=">等于</html:option>
				
		
		
				
						
								          <html:option value="like">包含</html:option>
				
		
		
				
						
								        </html:select>
				
		
		
				
						
								      </td>
				
		
		
				
						
								      <td>
				
		
		
				
						
								        <html:text property="_item2" size="40">
				
		
		
				
						
								        </html:text>
				
		
		
				
						
								      </td>
				
		
		
				
						
								    </tr>
				
		
		
				
						
								    <tr>
				
		
		
				
						
								      <td>企业地址</td>
				
		
		
				
						
								      <html:hidden property="_item3" value="b.address"/>
				
		
		
				
						
								      <td>
				
		
		
				
						
								        <html:select property="_item3">
				
		
		
				
						
								          <html:option value=""></html:option>
				
		
		
				
						
								          <html:option value="=">等于</html:option>
				
		
		
				
						
								          <html:option value="like">包含</html:option>
				
		
		
				
						
								        </html:select>
				
		
		
				
						
								      </td>
				
		
		
				
						
								      <td>
				
		
		
				
						
								        <html:text property="_item3" size="40">
				
		
		
				
						
								        </html:text>
				
		
		
				
						
								      </td>
				
		
		
				
						
								    </tr>
				
		
		
				
						
								    <tr>
				
		
		
				
						
								      <td align="right" colspan="3"><html:submit value=" 查 询 "/></td>
				
		
		
				
						
								    </tr>
				
		
		
				
						
								  </table>
				
		
		
				
						</html:form>
				
		
		
				
						该例是对企业表、行业表的连表查询,查询的基本条件是industry.code=enterprise.industry_code。
				
		
		
				
						
								      industry:行业代码表
				
		
		
				
						
								      industry.code:行业代码
				
		
		
				
						
								      enterprise:企业表
				
		
		
				
						
								      enterprise.industry_code:企业的行业代码
				
		
		
				
						下面是表单中包含的几个属性:
				
		
		
				
						
								(1)_dao
						
						,是DynaFormBean的保留属性,是DAO类的别名,告诉后台由哪个DAO类来操作数据。别名在WEB-INF/classes下的newxy.properties文件中指定,假设有一DAO类如下:
				
		
		
				
						
								          package common;
				
		
		
				
						
								          public class MyDAO1 extends net.newxy.dbm.BaseDAO{
				
		
		
				
						
								              ......
				
		
		
				
						}
				
		
		
				
						
								          在newxy.properties文件中定义DAO类别名如下:
				
		
		
				
						
								       
								         
								dao.mydao1=common.MyDAO1
						
				
		
		
				
						
								     如果DAO类common.MyDAO1的别名是dao.default,则表单无需上传属性_dao。
				
		
		
				
						
								(2)_sql
						
						,是DynaFormBean的保留属性,是查询的基本条件,其中where跟随其后的是大括号{},是最终组成查询条件存放的地方。用户选择的查询条件不管是”and”连接的还是”or”连接的,最终与_sql属性中的初始条件都以”and”关系连接。最后产生的sql语句可能是这样的:
				
		
		
				
						
								
										          
								
						
						
								   select a.industry,b.* from industry as a,enterprise as b where((a.code=b.industry_code)and (name=’....公司’ or  ......))
				
		
		
				
						
								     其中红色是初始条件,蓝色是用户选择的条件,二者以”and”相连。
				
		
		
				
						
								 
						
				
		
		
				
						
								(3)_lg
						
						,是DynaFormBean的保留属性,是“逻辑”的意思,如果_lg==”1”,上传的查询条件以”and”关系组织,否则以”or”关系统组织。
				
		
		
				
						
								(4)_item开头的属性
						
						,这种属性都以一个数字跟随其后,这样的属性一上传就有三个。如果在“企业名称”的<select name=”_item2”>...</select>项选择“等于”,在<input type=”text” name=”_item2”/>项填入“......公司”,上传数据后可得到如下字符串数组: 
				
		
		
				
						String[] itemValues=request.getParameterValues(“_item2”);
				
		
		
				
						itemValues是三个字符串构成的数组,三个字符串分别是 “a.name” “=” “......公司”,拼这一起可构成”a.name=’......公司’”,它构成查询条件的一部分。之所以这么解说,是增加对查询条件构成的理解。可参看
						
								
										newxy(新坐标)网站
								
						
						范例的“多项查询”。
				
		
		
				
						三、
				
				
						利用通用动态formBean类,
				
				
						向前台展现查询结果
				
		
		
				
						newxy(新坐标)查询的记录集保存在DynaFormBean类的_coll属性中,DynaFormBean另有一个属性_navigate,负责对记录集的分页计算。jsp页面可以用<nlogic:navigate/>标签为formBean的记录集分页导航。
				
		
		
				
						举例:
				
		
		
				
						如果struts的myAction的name=”enterprises”,查询后,formBean以”enterprises”为名保存的会话或其它scope中。
				
		
		
				
						<div><nlogic:navigate formName="enterprise" length="20"/></div><!--导般标签-->
				
		
		
				
						<logic:notEmpty name="enterprises" property="_coll">
				
		
		
				
						
								  <table>
				
		
		
				
						
								  <logic:iterate id="rec" name="enterprises" property="_coll">
				
		
		
				
						
								    <tr>
				
		
		
				
						
								      <td><bean:write name="rec" property="industry"/></td> <!--行业-->
				
		
		
				
						
								      <td><bean:write name="rec" property="name"/></td> <!--企业名称-->
				
		
		
				
						
								    </tr>
				
		
		
				
						
								  </logic:iterate>
				
		
		
				
						
								  </table>
				
		
		
				
						</logic:notEmpty>
				
		
		
				
						属性_coll是通用动态formBean类DynaFormBean的保留属性,保存了查询的记录,类型是List,其元素是
						
								
										org.apache.commons.beanutils.BasicDynaBean
								
						
						类型。
				
		
		
				
						
								        
						
				
		
		
				
						四、通用动态formBean类DynaFormBean及其父类的重要方法
				
		
		
				
						
								     net.newxy.struts_faces.DynaFormBean类继承自net.newxy.struts_faces.FormBean,下面是net.newxy.struts.faces.DynaFormBean及其父类net.newxy.struts.faces.FormBean的几个重要方法
				
		
		
				
						
								1、public void append(java.lang.Object dto)
						
						
								
										
										
								
						
				
		
		
				
						在结果集_coll的最后追加一条记录。同时将索引号指向最后一条。并用最后一条记录数据填写formBean。
				
		
		
				
						
								2、public java.lang.String setCollection(java.lang.Object objs)
						
				
		
		
				
						设置结果集,与set_coll(Collection _coll)相比,该方法除了作set_coll(Collection _coll)操作外,还对与分页浏览的相关属性值进行计算,将计算结果重新填入formBean的_navigate属性中,并重新设置索引号。
				
		
		
				
						
								3、public void setDto(java.lang.String no)
						
				
		
		
				
						将formBean中的数据填写到以no参数值为索引号的记录中。
				
		
		
				
						
								4、public void setForm(java.lang.String no)
						
				
		
		
				
						以no参数值为索引号,查找该条记录,如果存在,将该条记录数据填入的formBean中,并以no值为索引号。
				
		
		
				
						
								5、public void setForm(java.lang.Object dto)
						
				
		
		
				
						dto为包含数据的javaBean。将该Bean的值填入formBean中。这个javaBean类继承自net.newxy.dbm.Dto,但在目前版本只介绍formBean类
						net.newxy.struts.faces.FormBean
						及持久类net.newxy.dbm.Dto,参数dto暂理解成通用持久类net.newxy.dbm.DynaDto。
				
		
		
				
						
								6、public java.lang.Object getDto()
						
				
		
		
				
						从formBean得到持久类实例。
				
		
		
				
						
								7、public java.lang.Object getDto(java.lang.String no)
						
				
		
		
				
						以no为序号,返回这条记录。如果不存在,返回空。
				
		
		
				
						
								8、public void remove(java.lang.String no)
						
				
		
		
				
						从结果集中删除以no参数值为序号的记录。
				
		
		
				
						
								9、public java.lang.Object cloneDto(java.lang.String no)
						
				
		
		
				
						以no参数值为索引号,得到这条记录的克隆
				
		
		
				
						10、public void empty()
				
		
		
				
						将formBean数据清空,但保留属性不会被清除,包括保存了记录集的属性_coll。
				
		
		
				
						
								11、public java.util.Map getValues()
						
				
		
		
				
						获取保存了属性值对的HashMap,页面表单submit上传的属性保存在这个Map中。
				
		
		
				
						
								12、public java.lang.Object get(java.lang.String name)
						
				
		
		
				
						获取以name值为属性名的属性值
				
		
		
				
						
								13、public void set(java.lang.String name, java.lang.Object value)
						
				
		
		
				
						设置属性值。如果name是保留属性,将不进行set操作。
				
		
		
				
						
								14、public void setValue(java.lang.String name,java.lang.Object value)
						
				
		
		
				
						保留属性的set方法,通过此方法给以改变保留属性的值。
				
		
		
				
						
								15、public void set_dao(java.lang.String _dao)
						
				
		
		
				
						设置DAO类别名,_dao是保留属性,也可用方法setValue(“_dao”,_dao)。
				
		
		
				
						
								16、public void set_index(java.lang.String _index)
						
						
								
								
						
				
		
		
				
						设置记录集的索引号,_index是保留属性,也可用方法setValue(“_index”,_index)。
				
		
		
				
						
								 
						
				
		
		
				
				
				
						五、在jsp页面上新建、编辑数据
				
		
		
				
						
								1、后台查询数据
						
				
		
		
				
						
								       public ActionForward find(ActionMapping actionMapping, ActionForm actionForm,
				
		
		
				
						
								               HttpServletRequest httpServletRequest,
				
		
		
				
						
								               HttpServletResponse httpServletResponse) throws Exception{
				
		
		
				
						
								           
						
						DynaFormBean form=(DynaFormBean)actionForm;
						
								
								
						
				
		
		
				
						
								           net.newxy.util.FormBeanUtils.
						createForm(form,httpServletRequest);
				
		
		
				
						
								           .
						.....
				
		
		
				
						
								       }
				
		
		
				
						
								
										  
										2
								
						
						
								、编辑更新记录
						
						
								
										
										
								
						
				
		
		
				
						
								FormBeanUtils.
								createForm(form,httpServletRequest)
						
						将
						查询的记录集保存在DynaFormBean的_coll属性中并且以第一条记录填写到formBean的属性中。
				
		
		
				
						在jsp页面上有下列表单及其属性:
				
		
		
				
						<html:form action="/myAction.do?method=update">
				
		
		
				
						
								  <html:hidden property="_table" value="enterprise"/>
				
		
		
				
						
								  <html:hidden property="industry_code" value="A"/>
				
		
		
				
						
								  注册号:<html:text property="register_id"></html:text><br/>
				
		
		
				
						
								  负责人:<html:text property="principal"></html:text><br/>
				
		
		
				
						
								  企业名称:<br />
				
		
		
				
						
								  <html:text property="name" size="36"></html:text><br />
				
		
		
				
						
								  企业地址:<br />
				
		
		
				
						
								  <html:text property="address" size="36"></html:text><br />
				
		
		
				
						
								  经营范围:<br/>
				
		
		
				
						
								  <textarea name="dealIn" cols="36" rows="10">
				
		
		
				
						
								  <bean:write name="enterprise" property="dealIn"/>
				
		
		
				
						
								  </textarea><br/>
				
		
		
				
						
								  <html:submit value=”提交”/>
				
		
		
				
						</html:form>
				
		
		
				
						页面上显示的是每一条记录,用户编辑修改数据提交到后台,绑定到formBean中,覆盖原有数据。因为表单中没有主关键字段属性enterprise_id,数据提交后就不会改变原有的enterprise_id值,
						
								net.newxy.util.FormBeanUtils.
								createForm(form,httpServletRequest)
						
						方法调用
						
								DAO
						
						类的
						
								update(Object dto)
						
						方法就会作更新操作。
				
		
		
				
						
								
										(1)
								
						
						
								在页面上为
								
										formBean
								
						
						
								选择第
								
										10
								
						
						
								条记录
								
										
										
								
						
				
		
		
				
						在
						
								jsp
						
						页面
						
								<html:form></html:form>
						
						标签前加入
						
								java
						
						脚本
						
								<%......%>
						
				
		
		
				
						<%
				
		
		
				
						
								
										    net.newxy.faces.DynaFormBean form=( net.newxy.faces.DynaFormBean)pageContext.getAtribute(“enterprises”,3);//
						
						在
						
								session
						
						中得到
						
								formBean;
						
				
		
		
				
						
								
										    form.setForm(“9”);
						
				
		
		
				
						%>
				
		
		
				
						
								
										(2)
								
						
						
								在后台为
								
										formBean
								
						
						
								选择第
								
										10
								
						
						
								条记录
								
										
										
								
						
				
		
		
				
						public ActionForward  selectRecord(ActionMapping actionMapping, ActionForm actionForm,
				
		
		
				
						
								
										                              HttpServletRequest httpServletRequest,
						
				
		
		
				
						
								
										            HttpServletResponse httpServletResponse) throws Exception{
						
				
		
		
				
						
								
										    ......
						
				
		
		
				
						
								DynaFormBean form=(DynaFormBean)actionForm
						
						;
				
		
		
				
						form.set(“10”);
				
		
		
				
						......
				
		
		
				
						}
				
		
		
				
						jsp页面显示的便是第10条记录。用户可以对其编辑上传保存到数据库。
				
		
		
				
						
								 
						
				
		
		
				
						
								3、新建插入记录
						
				
		
		
				
						本篇介绍的
						
								
										
												
														数据插入:
														
																Object update(Object dto) throws Exception
														
												
										
								
						
						方法表明,如果
						
								dto
						
						不包含主关键字段属性,
						
								update(dto)
						
						作插入操作。如果在表单提交数据前调用
						
								net.newxy.faces.DynaFormBean
						
						类的
						
								empty()
						
						方法会清空
						
								formBean
						
						中的数据,但不清除保留属性,包括保存了记录集的属性
						
								_coll
						
						。这样用户得到的页面表单是空白的。而且提交数据后因为已清除了主关键字段属性,
						
								Object update(Object dto) throws Exception
						
						方法会作数据插入操作。
				
		
		
				
						
								
										(1)
								
						
						
								在
								
										jsp
								
						
						
								页面上清空
								
										formBean
								
						
				
		
		
				
						在
						
								jsp
						
						页面
						
								<html:form></html:form>
						
						标签前加入
						
								java
						
						脚本
						
								<%......%>
						
				
		
		
				
						<%
				
		
		
				
						
								
										    net.newxy.faces.DynaFormBean form=( net.newxy.faces.DynaFormBean)pageContext.getAtribute(“enterprises”,3);//
						
						在
						
								session
						
						中得到
						
								formBean;
						
				
		
		
				
						
								
										    form.empty();
						
				
		
		
				
						%>
				
		
		
				
						
								
										(2)
								
						
						
								在后台页面上清空
								
										formBean
								
						
				
		
		
				
						public ActionForward  selectRecord(ActionMapping actionMapping, ActionForm actionForm,
				
		
		
				
						
								
										                              HttpServletRequest httpServletRequest,
						
				
		
		
				
						
								
										            HttpServletResponse httpServletResponse) throws Exception{
						
				
		
		
				
						
								
										    ......
						
				
		
		
				
						
								DynaFormBean form=(DynaFormBean)actionForm
						
						;
				
		
		
				
						form.empty();
				
		
		
				
						......
				
		
		
				
						}
				
		
		
				
						
								jsp
						
						页面显示的是空白表单,用户输入数据提交后会作插入操作。
						
								
								
						
				
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				
						
								
										newxy(
								
						
						
								新坐标
								
										)
								
						
						
								技术网站:
								
										http://www.newxy.net
								
						
				
		
	posted on 2006-07-08 08:41 
newxy新坐标 阅读(451) 
评论(0)  编辑  收藏