`
ljys
  • 浏览: 3033 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

数据保存问题

阅读更多

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<%@ include file="/common/taglibs.jsp" %>

<html>
<head>
<%@include file="/common/meta.jsp" %>
<title>供应商管理</title>
<%@include file="/common/ec.jsp" %>
</head>
<body>

<div align="center">
   <table width="99%" style="border:1px #0099ee solid; background-color: #efefef">
      <tr height="30">
          <td colspan="20" bgcolor="#0099ee" align="center">
             <font color="white"><b>供应商管理</b></font>
          </td>
      </tr>
      
      <tr height="40">
       <td align= "left">
        快速查找 <select name="select">
         <option>列出所有供应商</option>
         <option>所有被禁用的供应商</option>
         <option>所有推荐的供应商</option>
       </select>导航管理:<a href="${ctx}/merchant/listMerchant.do?method=list"><img src="${ctx}/images/icons/user.jpg"/>供应商管理首页</a>|
         <a href="${ctx}/merchant/createMerchant.do?method=create"><img src="${ctx}/images/icons/user_add.gif"/> 添加供应商</a>
        </td>
        </tr>
  
   </table>
</div>
<br>

<html:form action="/merchant/saveMerchant.do?method=save">
 <html:hidden property="merchantId"/>

    <div align="center">
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0" >
 <tr>
     <td class="simple">供应商名称:</td>
     <td class="simple"><html:text property="merchantName" size="30"></html:text>*</td>   
   </tr>
   <tr>
      <td class="simple">所属类别:</td>
     <td class="simple" colspan="6">
     <html:radio property="sort" value="生产厂家">生产厂家</html:radio>
     <html:radio property="sort" value="销售公司">销售公司</html:radio>
     <html:radio property="sort" value="其它">其它</html:radio></td>
    </tr>
    <tr>
     <td class="simple">助记码:</td>
     <td class="simple"><html:text property="memoryCode" size="30"></html:text>*</td>   
   </tr>
    <tr>
     <td class="simple">公司地址:</td>
     <td class="simple"><html:text property="address" size="30"></html:text></td>   
   </tr>
   <tr>
     <td class="simple">联系电话:</td>
     <td class="simple"><html:text property="phone" size="30"></html:text></td>   
   </tr>
   <tr>
     <td class="simple">传真号码:</td>
     <td class="simple"><html:text property="fax" size="30"></html:text></td>   
   </tr>
   <tr>
     <td class="simple">电子邮件:</td>
     <td class="simple"><html:text property="EMail" size="30"></html:text></td>   
   </tr>
    <tr>
     <td class="simple">公司简介:</td>
     <td class="simple"><html:textarea property="introduction" cols="50" rows="6" ></html:textarea></td>   
   </tr>
   <tr>   
    <td colspan="30" align="center" class="simple">
    <input type="submit" value=" 保存 " style="border:1px">  
    <input type="reset" value=" 清空 " style="border:1px">
    </td>
  </tr>
 </table></div>
</html:form>

</html>

这是一个页面数据

package com.systop.practice.model;

// Generated 2007-6-8 10:45:24 by Hibernate Tools 3.2.0.beta8

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;

/**
 * Merchant generated by hbm2java
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "merchant")
public class Merchant implements java.io.Serializable {

 /**
  * 供应商编号
  **/ 

 private int merchantId;
 /**
  * 生产厂家
  **/   
 private String merchantName;
 /**
  * 供应商类型
  **/   
 private String sort;
 /**
  * 创建日期
  **/ 
 private Date buildDate;
 /**
  * 地址
  **/ 
 private String address;
 /**
  * 电话
  **/ 
 private Integer phone;
 /**
  * 传真
  **/ 
 private Integer fax;
 /**
  * 邮箱
  **/ 
 private String EMail;
 /**
  * 助记码
  **/ 
 private String memoryCode;
 /**
  * 简介
  **/  
 private String introduction;
 /**
  * 得到所有的品牌
  **/ 
 private Set<Trademark> trademarks = new HashSet<Trademark>(0);
 /**
  * 得到所有的采购单
  **/ 
 private Set<Stock> stocks = new HashSet<Stock>(0);

 // Constructors

 /** default constructor */
 public Merchant() {
 }

 /** minimal constructor */
 public Merchant(int merchantId) {
  this.merchantId = merchantId;
 }

 /** full constructor */
 public Merchant(int merchantId, String sort, Date buildDate,
   String address, Integer phone, Integer fax, String EMail,
   String memoryCode, Set<Trademark> trademarks, Set<Stock> stocks) {
  this.merchantId = merchantId;
  this.sort = sort;
  this.buildDate = buildDate;
  this.address = address;
  this.phone = phone;
  this.fax = fax;
  this.EMail = EMail;
  this.memoryCode = memoryCode;
  this.trademarks = trademarks;
  this.stocks = stocks;
 }

 // Property accessors
 @Id
 @GeneratedValue(generator = "inc")
 @GenericGenerator(name = "inc", strategy = "increment")
 @Column(name = "MERCHANT_ID", unique = true, nullable = true)
 public Integer getMerchantId() {
  return this.merchantId;
 }

 public void setMerchantId(Integer merchantId) {
  this.merchantId = merchantId;
 }

 @Column(name = "SORT", unique = false, nullable = true,
   insertable = true, updatable = true)
 public String getSort() {
  return this.sort;
 }

 public void setSort(String sort) {
  this.sort = sort;
 }

 @Temporal(TemporalType.DATE)
 @Column(name = "BUILD_DATE", unique = false, nullable = true,
   insertable = true, updatable = true)
 public Date getBuildDate() {
  return this.buildDate;
 }

 public void setBuildDate(Date buildDate) {
  this.buildDate = buildDate;
 }

 @Column(name = "ADDRESS", unique = false, nullable = true,
   insertable = true, updatable = true)
 public String getAddress() {
  return this.address;
 }

 public void setAddress(String address) {
  this.address = address;
 }

 @Column(name = "PHONE", unique = false, nullable = true,
   insertable = true, updatable = true)
 public Integer getPhone() {
  return this.phone;
 }

 public void setPhone(Integer phone) {
  this.phone = phone;
 }

 @Column(name = "FAX", unique = false, nullable = true,
   insertable = true, updatable = true)
 public Integer getFax() {
  return this.fax;
 }

 public void setFax(Integer fax) {
  this.fax = fax;
 }

 @Column(name = "E_MAIL", unique = false, nullable = true,
   insertable = true, updatable = true)
 public String getEMail() {
  return this.EMail;
 }

 public void setEMail(String EMail) {
  this.EMail = EMail;
 }

 @Column(name = "MEMORY_CODE", unique = false, nullable = true,
   insertable = true, updatable = true)
 public String getMemoryCode() {
  return this.memoryCode;
 }

 public void setMemoryCode(String memoryCode) {
  this.memoryCode = memoryCode;
 }

 @OneToMany(cascade = { CascadeType.ALL },
   fetch = FetchType.LAZY, mappedBy = "merchant")
 public Set<Trademark> getTrademarks() {
  return this.trademarks;
 }

 public void setTrademarks(Set<Trademark> trademarks) {
  this.trademarks = trademarks;
 }

 @OneToMany(cascade = { CascadeType.ALL },
   fetch = FetchType.LAZY, mappedBy = "merchant")
 public Set<Stock> getStocks() {
  return this.stocks;
 }

 public void setStocks(Set<Stock> stocks) {
  this.stocks = stocks;
 }
 @Column(name = "MERCHANT_NAME", unique = false,
   nullable = true, insertable = true, updatable = true)
 public String getMerchantName() {
  return merchantName;
 }

 public void setMerchantName(String merchantName) {
  this.merchantName = merchantName;
 }

 /**
  * @return the introduction
  */
 @Column(name = "INTRODUCTION", unique = false,
   nullable = true, insertable = true, updatable = true)
 public String getIntroduction() {
  return introduction;
 }

 /**
  * @param introduction the introduction to set
  */
 public void setIntroduction(String introduction) {
  this.introduction = introduction;
 }

 

}

这是一个实体

 

package com.systop.practice.merchant.webapp;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.criterion.DetachedCriteria;
import com.systop.practice.core.webapp.struts.StrutsAction;
import com.systop.practice.merchant.service.MerchantManager;
import com.systop.practice.model.Merchant;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
/**
 * Merchant的struts action,由于数据量小,所以直接使用StrutsAction,而不是
 * 使用ECPageQueryStrutsAction
 * @author ljy
 *
 */
public class MerchantAction extends StrutsAction {
 /**
    * 从spring中得到DeptManager
    */
   private MerchantManager getMerchantMgr() {
     return (MerchantManager) getBean("merchantManager");
   }
   /**
    * 列出所有生产厂家
    */
   public ActionForward list(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
   //创建一个离线条件查询
  DetachedCriteria criteria = DetachedCriteria.forClass(Merchant.class);
//  处理条件查询
     String merchantserch = request.getParameter("merchantSerch");
     String value = request.getParameter("matter");
     if (StringUtils.isNotBlank(merchantserch)) {
      criteria.add(Restrictions.like(merchantserch,
        value, MatchMode.ANYWHERE));
     }
  List merchants = getMerchantMgr().get(Merchant.class);
     request.setAttribute("merchants", merchants); //把生产厂家列表放到Request中
    
     return mapping.findForward("list");
    
   }
   /**
    * 添加生产厂家前,将页面定位到merchantForm.jsp
    * @return
    */
   public ActionForward create(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
  
     return mapping.findForward("edit");
   }
  
   /**
    * 编辑生产厂家前,将页面定位到merchantForm.jsp
    * @return
    */
   public ActionForward edit(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
     Merchant merchant = new Merchant();
     bindEntity(form, merchant);  
     log.debug(merchant.getMerchantId());
     if (merchant != null && merchant.getMerchantId() != null) {
      merchant = getMerchantMgr().get(Merchant.class,
        merchant.getMerchantId());
     }
     bindForm(form, merchant);
   
     return mapping.findForward("edit");
   }
  
   /**
    * 保存生产厂家信息,包括更新和添加
    * @return
    */
   public ActionForward save(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {

     Merchant merchant = new Merchant();

     this.bindEntity(form, merchant);

     //将页面数据提取为merchant对象
     getMerchantMgr().save(merchant);   
     return mapping.findForward("success");
   }
  
   /**
    * 删除生产厂家信息
    * @return
    */
   public ActionForward remove(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response) {
     //获得页面数据
  String []merchantIds = request.getParameterValues("selectedItems");
      
     if (merchantIds != null && merchantIds.length > 0) {
       for (int i = 0; i < merchantIds.length; i++) {
         if (StringUtils.isNotBlank(merchantIds[i])) {
           Merchant merchant = getMerchantMgr().get(Merchant.class ,
             Integer.valueOf(merchantIds[i]));
             if (merchant != null) {
              getMerchantMgr().remove(merchant);
             log.debug("Remove Merchant" + merchant.getMerchantId());
           }
         }
       }
     }
     return mapping.findForward("success");
   }
}


这是我的Action

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
  "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
 <form-beans>  
  <form-bean name="merchantForm" type="org.apache.struts.validator.LazyValidatorForm"/>
 </form-beans>

 <action-mappings>
  
  <action path="/merchant/listMerchant" name="merchantForm" type="com.systop.practice.merchant.webapp.MerchantAction"
   parameter="method" scope="request" validate="false" >
   <forward name="list" path="/pages/merchant/listMerchants.jsp"/>   
  </action>
  <action path="/merchant/saveMerchant" name="merchantForm" type="com.systop.practice.merchant.webapp.MerchantAction"
   parameter="method" scope="request" validate="true" input="/pages/merchant/merchantForm.jsp" >
   <forward name="success" path="/merchant/listMerchant.do?method=list" redirect="true"/>
  </action>
  <action path="/merchant/editMerchant" name="merchantForm" type="com.systop.practice.merchant.webapp.MerchantAction"
   parameter="method" scope="request" validate="false" >
   <forward name="edit" path="/pages/merchant/merchantForm.jsp"/>   
  </action>
  <action path="/merchant/createMerchant" name="merchantForm" type="com.systop.practice.merchant.webapp.MerchantAction"
   parameter="method" scope="request" validate="false" >
   <forward name="edit" path="/pages/merchant/merchantForm.jsp"/>   
  </action>
  <action path="/merchant/removeMerchant" name="merchantForm" type="com.systop.practice.merchant.webapp.MerchantAction"
   parameter="method" scope="request" validate="false" >
   <forward name="success" path="/merchant/listMerchant.do?method=list" redirect="true"/>  
  </action>
 </action-mappings>

</struts-config>

这是STRUTS部分

问题:只能保存添加的内容。修改完以后就作为一条新记录添加进数据库,请帮助看一下问题也在什么

地方!!!!!

分享到:
评论
1 楼 hgq0011 2007-06-19  
你持久层用的是hibernate吧,你的问题应该是出在,修改的时候你没有获取到实例对象主建值。

相关推荐

    关于在TChart上做的图形和数据保存问题

    ### 关于在TChart上做的图形和数据保存问题 #### 背景介绍 在开发过程中,经常会遇到需要将图表组件中的数据或者图形保存下来的需求。对于使用了TChart组件的开发者来说,如何有效地实现这一功能是十分重要的。...

    接收串口数据并将数据保存

    本项目"接收串口数据并将数据保存"是针对数据采集卡的一种实践应用,其目标是实时接收并记录从串口接收到的数据。 1. **串口通信基础** - **串口类型**:常见的串口有RS-232、RS-485和USB转串口等,其中RS-232是最...

    数据保存_labview数据保存_

    在LabVIEW中,数据保存是一项重要的任务,尤其是在进行实验数据记录、数据分析或系统测试时。本主题将深入探讨如何在LabVIEW中实现数据保存至xls文件格式,这是一种常见的电子表格格式,广泛应用于数据管理和共享。 ...

    数据保存.rar_labview_labview保存文件_labview数据保存_保存数据_数据文件保存

    在这个“数据保存.rar”压缩包中,包含了一个名为“数据保存.vi”的VI(Virtual Instrument),它显然是用来演示或实现如何在LabVIEW中保存数据到TXT文件中的。下面,我们将深入探讨LabVIEW的数据保存机制,以及如何...

    易语言程序自身保存数据

    在易语言中,程序自身保存数据是一项关键功能,这涉及到软件的配置管理和持久化存储。下面我们将深入探讨这个主题,并提供相关的编程实践。 1. 程序配置数据的理解 配置数据是指程序运行时需要的一些设置或状态...

    易语言自定义数据类型变量保存

    本案例"易语言自定义数据类型变量保存"主要关注如何保存和恢复自定义数据类型的变量。在编程中,保存数据通常是为了持久化存储,以便在程序下次运行或者在不同时间点能够继续使用这些数据。而恢复则是在程序启动或...

    数据转换保存CSV_labview_源码

    接下来,我们关注数据保存至CSV格式。在LabVIEW中,我们可以使用“File Write String”函数或“Text File Write”函数来实现。这两个函数都可以将数据写入文本文件,而CSV文件本质上就是一个纯文本文件。在写入数据...

    串口数据保存至TXT文件.rar

    《LabVIEW串口数据保存至TXT文件》 在电子工程和自动化领域,LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种强大的图形化编程环境,它以其直观的图标和连线方式深受工程师喜爱。本主题主要...

    LABview串口数据保存至TXT文件_labview_

    标题 "LABview串口数据保存至TXT文件" 描述了如何使用国家仪器(NI)的图形化编程语言LabVIEW来实现一个功能,即将通过串行通信接口接收到的数据记录到文本文件(TXT)中。这一过程涉及到LabVIEW的串口通信、数据...

    STC89C52单片机掉电数据保存程序

    "STC89C52单片机掉电数据保存程序"就是为了解决这个问题而设计的。 掉电数据保存通常涉及非易失性存储器(Non-Volatile Memory, NVM),如EEPROM(Electrically Erasable Programmable Read-Only Memory)或内部的...

    qt 界面数据保存到Word文件和Excel文件

    在本例中,我们将关注如何使用Qt框架来实现这个功能,特别是将用户在Qt界面中输入的数据保存到Word文档和Excel表格中。 首先,对于“qt界面数据保存到Word文件”,这里提到的“书签和模板”是关键。在Word文档中,...

    matlab中将数据输出保存为txt格式文件的方法

    MATLAB数据保存为TXT格式文件的方法 MATLAB是一种功能强大的数据分析和处理工具,在数据编辑时,经常需要将编辑器中的数据保存为TXT格式文件。下面将介绍三种常见方法,将MATLAB中的数据输出保存为TXT格式文件。 ...

    stm32保存内存数据的方法

    除了将数据保存到RAM中并通过调试工具导出外,还可以考虑将重要数据保存到非易失性存储器中,确保数据的安全性和持久性。 ##### 5.1 内置EEPROM STM32部分型号内置了EEPROM(电可擦可编程只读存储器),可以用来...

    Labview数据保存至表格

    - 错误处理:确保在数据保存过程中处理可能出现的错误,如磁盘空间不足或文件权限问题。 - 数据验证:在保存前检查数据的完整性,避免无效或异常值。 - 自动化文件命名:为保存的文件设置自动递增的序列号或日期...

    关于单片机flash数据保存和读取的方法---数据保存和读取源代码

    数据保存和读取源代码;数据保存和读取源代码;数据保存和读取源代码

    mfc中读取编辑框数据并保存

    本文将详细介绍如何在MFC中实现从编辑框(即`EditBox`)读取数据,并将这些数据保存到TXT文本文件中的过程。 #### 创建MFC项目 1. **启动Visual Studio**:首先确保已经安装了支持MFC的Visual Studio版本。 2. **...

    易语言超级列表框数据保存

    本主题聚焦于易语言中一个重要的组件——超级列表框(Super ListBox)的数据保存和读取操作。超级列表框是易语言提供的一种能够展示大量数据并支持多种操作的控件,常用于数据浏览和选择。 首先,我们要理解超级...

    TwinCAT 2.0 使用说明(数据保存)

    TwinCAT 2.0为用户提供了多种本地数据保存的方式,包括NOVRAM区、WTC文件、Persistant文件、XML文件和二进制文件。每种保存方式都有其特定的硬件和软件要求,以及不同的难易程度和对PLC资源的消耗情况。用户在选择...

    串口数据保存、波形显示

    串口数据保存、波形显示,TXT数据实时保存,可以保存为Excel格式保存串口数据保存、波形显示,TXT数据实时保存,可以保存为Excel格式保存

    TCP获取数据保存为txt文件(亲测有效)

    本文将详细介绍如何通过编程实现TCP通信来获取数据,并将这些数据保存到TXT文本文件中。这个过程涉及到网络编程、TCP连接建立、数据接收以及文件操作等多个知识点。 首先,我们要理解TCP的工作原理。TCP是一种面向...

Global site tag (gtag.js) - Google Analytics