【springmvc+mybatis项目实战】杰信商贸-14.购销合同添加+修改+删除+查看

本文详细介绍了购销合同管理系统的实现细节,包括增加、修改、删除和查看购销合同的方法。主要内容涉及Mapper映射文件、修改编辑jsp页面、Service层、Controller层以及相关代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一次我们完成了购销合同列表的显示,下面我们来完成购销合同增加、修改、删除、查方法看。

首先回顾一下我们的Mapper映射文件
ContractMapper.xml:
[html]  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper  
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  5.   
  6. <mapper namespace="cn.hpu.jk.mapper.ContractMapper">  
  7.     <resultMap type="cn.hpu.jk.domain.Contract" id="contractRM">  
  8.         <id property="id" column="CONTRACT_ID"/>  
  9.         <result property="offeror" column="OFFEROR"/>  
  10.         <result property="contractNo" column="CONTRACT_NO"/>  
  11.         <result property="signingDate" column="SIGNING_DATE"/>  
  12.         <result property="inputBy" column="INPUT_BY"/>  
  13.         <result property="checkBy" column="CHECK_BY"/>  
  14.         <result property="inspector" column="INSPECTOR"/>  
  15.         <result property="totalAmount" column="TOTAL_AMOUNT"/>  
  16.         <result property="importNum" column="IMPORT_NUM"/>  
  17.         <result property="crequest" column="CREQUEST"/>  
  18.         <result property="customName" column="CUSTOM_NAME"/>  
  19.         <result property="deliveryPeriod" column="DELIVERY_PERIOD"/>  
  20.         <result property="shipTime" column="SHIP_TIME"/>  
  21.         <result property="tradeTerms" column="TRADE_TERMS"/>  
  22.         <result property="remark" column="REMARK"/>  
  23.         <result property="printStyle" column="PRINT_STYLE"/>  
  24.         <result property="oldState" column="OLD_STATE"/>  
  25.         <result property="state" column="STATE"/>  
  26.         <result property="outState" column="OUT_STATE"/>  
  27.           
  28.         <result property="createBy" column="CREATE_BY"/>  
  29.         <result property="creatDept" column="CREATE_DEPT"/>  
  30.         <result property="creatTime" column="CREATE_TIME"/>  
  31.     </resultMap>  
  32.       
  33.     <!-- 查询多个 -->  
  34.     <select id="find" parameterType="map" resultMap="contractRM">  
  35.         select * from contract_c  
  36.         where 1=1  
  37.     </select>  
  38.       
  39.     <!-- 查询一个 -->  
  40.     <select id="get" parameterType="string" resultMap="contractRM">  
  41.         select * from contract_c  
  42.         where contract_id=#{id}  
  43.     </select>  
  44.       
  45.     <!-- 新增 -->  
  46.     <insert id="insert" parameterType="cn.hpu.jk.domain.Contract">  
  47.         insert into contract_c  
  48.         (CONTRACT_ID,,OFFEROR,CONTRACT_NO,SIGNING_DATE,INPUT_BY,CHECK_BY,INSPECTOR,TOTAL_AMOUNT,  
  49.         IMPORT_NUM,CREQUEST,CUSTOM_NAME,DELIVERY_PERIOD,SHIP_TIME,TRADE_TERMS,REMARK,PRINT_STYLE,  
  50.         OLD_STATE,STATE,OUT_STATE,CREATE_BY,CREATE_DEPT,CREATE_TIME)  
  51.         values  
  52.         (  
  53.             #{id},  
  54.             #{offeror, jdbcType=VARCHAR},  
  55.             #{contractNo, jdbcType=VARCHAR},  
  56.             #{signingDate, jdbcType=TIMESTAMP},  
  57.             #{inputBy, jdbcType=VARCHAR},  
  58.             #{checkBy, jdbcType=VARCHAR},  
  59.             #{inspector, jdbcType=VARCHAR},  
  60.             #{totalAmount, jdbcType=DOUBLE},  
  61.             #{importNum, jdbcType=INTEGER},  
  62.             #{crequest, jdbcType=VARCHAR},  
  63.             #{customName, jdbcType=VARCHAR},  
  64.             #{deliveryPeriod, jdbcType=TIMESTAMP},  
  65.             #{shipTime, jdbcType=TIMESTAMP},  
  66.             #{tradeTerms, jdbcType=VARCHAR},  
  67.             #{remark, jdbcType=VARCHAR},  
  68.             #{printStyle, jdbcType=CHAR},  
  69.             #{oldState, jdbcType=INTEGER},  
  70.             #{state, jdbcType=INTEGER},  
  71.             #{outState, jdbcType=INTEGER},  
  72.             #{createBy, jdbcType=VARCHAR},  
  73.             #{creatDept, jdbcType=VARCHAR},  
  74.             #{creatTime, jdbcType=TIMESTAMP}  
  75.         )  
  76.     </insert>  
  77.       
  78.     <!-- 修改 -->  
  79.     <update id="update" parameterType="cn.hpu.jk.domain.Contract">  
  80.         update contract_c  
  81.         <set>  
  82.             <if test="offeror != null">OFFEROR=#{offeror},</if>  
  83.             <if test="contractNo != null">CONTRACT_NO=#{contractNo},</if>  
  84.             <if test="signingDate != null">SIGNING_DATE=#{signingDate},</if>  
  85.             <if test="inputBy != null">INPUT_BY=#{inputBy},</if>  
  86.             <if test="checkBy != null">CHECK_BY=#{checkBy},</if>  
  87.             <if test="inspector != null">INSPECTOR=#{inspector},</if>  
  88.             <if test="totalAmount != null">TOTAL_AMOUNT=#{totalAmount},</if>  
  89.             <if test="importNum != null">IMPORT_NUM=#{importNum},</if>  
  90.             <if test="crequest != null">CREQUEST=#{crequest},</if>  
  91.             <if test="customName != null">CUSTOM_NAME=#{customName},</if>  
  92.             <if test="deliveryPeriod != null">DELIVERY_PERIOD=#{deliveryPeriod},</if>  
  93.             <if test="shipTime != null">SHIP_TIME=#{shipTime},</if>  
  94.             <if test="tradeTerms != null">TRADE_TERMS=#{tradeTerms},</if>  
  95.             <if test="remark != null">REMARK=#{remark},</if>  
  96.             <if test="printStyle != null">PRINT_STYLE=#{printStyle},</if>  
  97.             <if test="oldState != null">OLD_STATE=#{oldState},</if>  
  98.             <if test="state != null">STATE=#{state},</if>  
  99.             <if test="outState != null">OUT_STATE=#{outState},</if>  
  100.         </set>  
  101.         where contract_id=#{id}  
  102.     </update>  
  103.       
  104.     <!-- 删除一条 -->  
  105.     <delete id="deleteById" parameterType="string">  
  106.         delete from contract_c  
  107.         where CONTRACT_ID=#{id}  
  108.     </delete>  
  109.       
  110.     <!-- 删除多条(一维字符串数组的形式) -->  
  111.     <delete id="delete" parameterType="string">  
  112.         delete from contract_c  
  113.         where CONTRACT_ID in    
  114.         <foreach collection="array" item="id" open="(" close=")" separator=",">  
  115.             #{id}  
  116.         </foreach>  
  117.     </delete>  
  118.       
  119.     <!-- 修改状态 -->  
  120.     <update id="updateState" parameterType="map">  
  121.         update contract_c set state=#{state}  
  122.         where CONTRACT_ID in  
  123.         <foreach collection="ids" item="id" open="(" close=")" separator=",">  
  124.             #{id}  
  125.         </foreach>  
  126.     </update>  
  127. </mapper>  

可见我们已经发提前写好了增删改查的配置语句

我们首先来写增加功能
来看我们的Dao层,因为我们继承了BaseDao以及BaseDaoImpl,所以我们拥有下面的方法:
[java]  view plain copy
  1. public void insert(T entity) {  
  2.     this.getSqlSession().insert(ns + ".insert", entity);  
  3. }  

所以Dao层不用再添加代码。

接下来是我们的Service层
之前我们已经在ContractService以及ContractServiceImpl添加了下面的方法
[java]  view plain copy
  1. @Override  
  2. public void insert(Contract contract) {  
  3.     //设置UUID  
  4.     contract.setId(UUID.randomUUID().toString());  
  5.     contract.setState(0);//默认为草稿  
  6.     contractDao.insert(contract);  
  7. }  
所以Service层无需添加代码

接下来看Controller层
我们在ContractController中添加以下方法
[java]  view plain copy
  1. //跳到添加编辑页面  
  2. @RequestMapping("/cargo/contract/tocreate.action")  
  3. public String tocreate(){  
  4.     return "/cargo/contract/jContractCreate.jsp";  
  5. }  
  6.   
  7.   
  8. //添加  
  9. @RequestMapping("/cargo/contract/insert.action")  
  10. public String insert(Contract contract){  
  11.     contractService.insert(contract);  
  12.       
  13.     return "redirect:/cargo/contract/list.action";  
  14. }  


接下来我们编写编辑页面的jsp文件:

jContractCreate.jsp
[html]  view plain copy
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ include file="../../base.jsp"%>  
  3. <html xmlns="http://www.w3.org/1999/xhtml">  
  4. <head>  
  5.     <title>添加购销合同</title>  
  6.     <script language="javascript" src="${ctx}/js/datepicker/WdatePicker.js"></script>  
  7. </head>  
  8. <body>  
  9. <form method="post">  
  10.   
  11.   
  12. <div id="menubar">  
  13. <div id="middleMenubar">  
  14. <div id="innerMenubar">  
  15.     <div id="navMenubar">  
  16. <ul>  
  17. <li id="save"><a href="#" onclick="formSubmit('insert.action','_self');">确定</a></li>  
  18. <li id="back"><a href="list.action">返回</a></li>  
  19. </ul>  
  20.     </div>  
  21. </div>  
  22. </div>  
  23. </div>  
  24.        
  25. <div class="textbox" id="centerTextbox">  
  26.       
  27.     <div class="textbox-header">  
  28.     <div class="textbox-inner-header">  
  29.     <div class="textbox-title">  
  30.         添加购销合同信息  
  31.     </div>   
  32.     </div>  
  33.     </div>  
  34. <div>  
  35.    
  36.     <div>  
  37.         <table class="commonTable" cellspacing="1">  
  38.                 <tr>  
  39.                     <td class="columnTitle_mustbe">客户名称:</td>  
  40.                     <td class="tableContent"><input type="text" name="customName" /></td>  
  41.                     <td class="columnTitle_mustbe">收购方:</td>  
  42.                     <td class="tableContent"><input type="text" name="offeror" /></td>  
  43.                 </tr>  
  44.                   
  45.                 <tr>  
  46.                     <td class="columnTitle_mustbe">合同号:</td>  
  47.                     <td class="tableContent"><input type="text" name="contractNo" /></td>  
  48.                     <td class="columnTitle_mustbe">签单日期:</td>  
  49.                     <td class="tableContent">  
  50.                     <input type="text" style="width: 90px" name="signingDate" class="Wdate"  
  51.                      onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/>  
  52.                     </td>  
  53.                 </tr>  
  54.                   
  55.                 <tr>  
  56.                     <td class="columnTitle_mustbe">制单人:</td>  
  57.                     <td class="tableContent"><input type="text" name="inputBy" /></td>  
  58.                     <td class="columnTitle_mustbe">审单人:</td>  
  59.                     <td class="tableContent"><input type="text" name="checkBy" /></td>  
  60.                 </tr>  
  61.                   
  62.                  <tr>  
  63.                     <td class="columnTitle_mustbe">验货员:</td>  
  64.                     <td class="tableContent"><input type="text" name="inspector" /></td>  
  65.                     <td class="columnTitle_mustbe">检验员:</td>  
  66.                     <td class="tableContent"><input type="text" name="inspector" /></td>  
  67.                 </tr>  
  68.                   
  69.                  <tr>  
  70.                     <td class="columnTitle_mustbe">总金额:</td>  
  71.                     <td class="tableContent"><input type="text" name="totalAmount" /></td>  
  72.                     <td class="columnTitle_mustbe">重要程度:</td>  
  73.                     <td class="tableContent">  
  74.                     <input type="radio" name="importNum" value="3" class="input" checked="checked"/>★★★  
  75.                     <input type="radio" name="importNum" value="2" class="input" checked="checked"/>★★  
  76.                     <input type="radio" name="importNum" value="1" class="input" checked="checked"/>★  
  77.                     </td>  
  78.                 </tr>  
  79.                   
  80.                  <tr>  
  81.                     <td class="columnTitle_mustbe">要求:</td>  
  82.                     <td class="tableContent"><input type="text" name="crequest" /></td>  
  83.                     <td class="columnTitle_mustbe">交货期限:</td>  
  84.                     <td class="tableContent">  
  85.                      <input type="text" style="width: 90px" name="deliveryPeriod" class="Wdate"  
  86.                      onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/>  
  87.                     </td>  
  88.                 </tr>  
  89.                   
  90.                 <tr>  
  91.                     <td class="columnTitle_mustbe">船期:</td>  
  92.                     <td class="tableContent">  
  93.                     <input type="text" style="width: 90px" name="shipTime" class="Wdate"  
  94.                      onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/>  
  95.                     </td>  
  96.                     <td class="columnTitle_mustbe">贸易条款:</td>  
  97.                     <td class="tableContent"><input type="text" name="tradeTerms" /></td>  
  98.                 </tr>  
  99.                   
  100.                 <tr>  
  101.                     <td class="columnTitle_mustbe">打印版式:</td>  
  102.                     <td class="tableContent">  
  103.                     <input type="radio" name="printStyle" value="2" checked="checked"/>两款  
  104.                     <input type="radio" name="printStyle" value="1" />一款  
  105.                     </td>  
  106.                     <td class="columnTitle_mustbe">归档前状态:</td>  
  107.                     <td class="tableContent"><input type="text" name="oldState" /></td>  
  108.                 </tr>  
  109.                   
  110.                 <tr>  
  111.                     <td class="columnTitle_mustbe">状态:</td>  
  112.                     <td class="tableContent"><input type="text" name="state" /></td>  
  113.                     <td class="columnTitle_mustbe">走货状态:</td>  
  114.                     <td class="tableContent"><input type="text" name="outState" /></td>  
  115.                 </tr>  
  116.                   
  117.                 <tr>  
  118.                     <td class="columnTitle_mustbe">说明:</td>  
  119.                     <td class="tableContent"><textarea  name="remark" style="height:200px;width: 400px"></textarea></td>  
  120.                 </tr>  
  121.             </table>  
  122.     </div>  
  123. </div>  
  124.    
  125.    
  126. </form>  
  127. </body>  
  128. </html>  

关于时间选取我们在中间使用了“js时间拾取器”,具体js文件在: js时间拾取器.zip  (点击下载),里面有使用说明。

我们在购销合同列表添加一个按钮(上一次已添加过):
[html]  view plain copy
  1. <li id="new"><a href="#" onclick="formSubmit('tocreate.action','_self');this.blur();">添加</a></li>  
效果


点击添加,添加成功!


注意,我们这里的总金额并不是让我们输入的,是后台根据购销合同的附带货物金额生成的,这里我们还没有写附带货物,所以暂时先这么写。

我们接下来写修改功能
Mapper文件中已经写好了修改的相关配置语句,那么来看我们的Dao层,因为我们继承了BaseDao以及BaseDaoImpl,所以我们拥有下面的方法:
[java]  view plain copy
  1. public void update(T entity) {  
  2.     this.getSqlSession().update(ns + ".update", entity);  
  3. }  

所以Dao层不用再添加代码。

接下来是我们的Service层
之前我们已经在ContractService以及ContractServiceImpl添加了下面的方法
[java]  view plain copy
  1. @Override  
  2. public void update(Contract contract) {  
  3.       
  4.     contractDao.update(contract);  
  5. }  
所以Service层无需添加代码

接下来看Controller层
我们在ContractController中添加以下方法
[java]  view plain copy
  1. //跳转到编辑页面  
  2. @RequestMapping("/cargo/contract/toupdate.action")  
  3. public String toupdate(String id,Model model){  
  4.     Contract obj=contractService.get(id);  
  5.     model.addAttribute("obj",obj);  
  6.       
  7.     return "/cargo/contract/jContractUpdate.jsp";  
  8. }  
  9.   
  10.   
  11. //修改方法  
  12. @RequestMapping("/cargo/contract/update.action")  
  13. public String update(Contract contract){  
  14.     contractService.update(contract);  
  15.       
  16.     return "redirect:/cargo/contract/list.action";  
  17. }  

之后编写修改的编辑jsp页面:
jContractUpdate.jsp
[html]  view plain copy
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ include file="../../base.jsp"%>  
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>  
  4. <html xmlns="http://www.w3.org/1999/xhtml">  
  5. <head>  
  6.     <title>修改购销合同</title>  
  7.     <script language="javascript" src="${ctx}/js/datepicker/WdatePicker.js"></script>  
  8. </head>  
  9. <body>  
  10. <form method="post">  
  11.   
  12.   
  13. <div id="menubar">  
  14. <div id="middleMenubar">  
  15. <div id="innerMenubar">  
  16.     <div id="navMenubar">  
  17. <ul>  
  18. <li id="save"><a href="#" onclick="formSubmit('insert.action','_self');">确定</a></li>  
  19. <li id="back"><a href="list.action">返回</a></li>  
  20. </ul>  
  21.     </div>  
  22. </div>  
  23. </div>  
  24. </div>  
  25.        
  26. <div class="textbox" id="centerTextbox">  
  27.       
  28.     <div class="textbox-header">  
  29.     <div class="textbox-inner-header">  
  30.     <div class="textbox-title">  
  31.         修改购销合同信息  
  32.     </div>   
  33.     </div>  
  34.     </div>  
  35. <div>  
  36.    
  37.     <div>  
  38.         <table class="commonTable" cellspacing="1">  
  39.         <input type="hidden" name="id" value="${obj.id}"/>  
  40.                 <tr>  
  41.                     <td class="columnTitle_mustbe">客户名称:</td>  
  42.                     <td class="tableContent"><input type="text" name="customName" value="${obj.customName }"/></td>  
  43.                     <td class="columnTitle_mustbe">收购方:</td>  
  44.                     <td class="tableContent"><input type="text" name="offeror" value="${obj.offeror }"/></td>  
  45.                 </tr>  
  46.                   
  47.                 <tr>  
  48.                     <td class="columnTitle_mustbe">合同号:</td>  
  49.                     <td class="tableContent"><input type="text" name="contractNo" value="${obj.contractNo }"/></td>  
  50.                     <td class="columnTitle_mustbe">签单日期:</td>  
  51.                     <td class="tableContent">  
  52.                     <input type="text" style="width: 90px" name="signingDate" class="Wdate" value="<fmt:formatDate value="${obj.signingDate }" pattern="yyyy-MM-dd"/>"  
  53.                      onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/>  
  54.                     </td>  
  55.                 </tr>  
  56.                   
  57.                 <tr>  
  58.                     <td class="columnTitle_mustbe">制单人:</td>  
  59.                     <td class="tableContent"><input type="text" name="inputBy" value="${obj.inputBy }"/></td>  
  60.                     <td class="columnTitle_mustbe">审单人:</td>  
  61.                     <td class="tableContent"><input type="text" name="checkBy" value="${obj.checkBy }"/></td>  
  62.                 </tr>  
  63.                   
  64.                  <tr>  
  65.                     <td class="columnTitle_mustbe">验货员:</td>  
  66.                     <td class="tableContent"><input type="text" name="inspector" value="${obj.inspector }"/></td>  
  67.                     <td class="columnTitle_mustbe">总金额:</td>  
  68.                     <td class="tableContent"><input type="text" name="totalAmount" value="${obj.totalAmount}"/></td>  
  69.                 </tr>  
  70.                   
  71.                  <tr>  
  72.                     <td class="columnTitle_mustbe">要求:</td>  
  73.                     <td class="tableContent"><input type="text" name="crequest" value="${obj.crequest}"/></td>  
  74.                     <td class="columnTitle_mustbe">交货期限:</td>  
  75.                     <td class="tableContent">  
  76.                      <input type="text" style="width: 90px" name="deliveryPeriod" class="Wdate" value="<fmt:formatDate value="${obj.deliveryPeriod }" pattern="yyyy-MM-dd"/>"  
  77.                      onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/>  
  78.                     </td>  
  79.                 </tr>  
  80.                   
  81.                 <tr>  
  82.                     <td class="columnTitle_mustbe">船期:</td>  
  83.                     <td class="tableContent">  
  84.                     <input type="text" style="width: 90px" name="shipTime" class="Wdate" value="<fmt:formatDate value="${obj.shipTime}" pattern="yyyy-MM-dd"/>"  
  85.                      onclick="WdatePicker({el:this,isShowOthers:true,dateFmt:'yyyy-MM-dd'});"/>  
  86.                     </td>  
  87.                     <td class="columnTitle_mustbe">贸易条款:</td>  
  88.                     <td class="tableContent"><input type="text" name="tradeTerms" value="${obj.tradeTerms }"/></td>  
  89.                 </tr>  
  90.                   
  91.                 <tr>  
  92.                     <td class="columnTitle_mustbe">打印版式:</td>  
  93.                     <td class="tableContent">  
  94.                     <input type="radio" name="printStyle" value="2" <c:if test="${obj.printStyle=='2'}"> checked="checked"</c:if>/>两款  
  95.                     <input type="radio" name="printStyle" value="1" <c:if test="${obj.printStyle=='1'}"> checked="checked"</c:if>/>一款  
  96.                     </td>  
  97.                     <td class="columnTitle_mustbe">归档前状态:</td>  
  98.                     <td class="tableContent"><input type="text" name="oldState" value="${obj.oldState}"/></td>  
  99.                 </tr>  
  100.                   
  101.                 <tr>  
  102.                     <td class="columnTitle_mustbe">状态:</td>  
  103.                     <td class="tableContent"><input type="text" name="state" value="${obj.state}"/></td>  
  104.                     <td class="columnTitle_mustbe">走货状态:</td>  
  105.                     <td class="tableContent"><input type="text" name="outState" value="${obj.outState}"/></td>  
  106.                 </tr>  
  107.                   
  108.                 <tr>  
  109.                     <td class="columnTitle_mustbe">重要程度:</td>  
  110.                     <td class="tableContent">  
  111.                     <input type="radio" name="importNum" value="3" class="input" <c:if test="${obj.importNum==3}"> checked="checked"</c:if>/>★★★  
  112.                     <input type="radio" name="importNum" value="2" class="input" <c:if test="${obj.importNum==2}"> checked="checked"</c:if>/>★★  
  113.                     <input type="radio" name="importNum" value="1" class="input" <c:if test="${obj.importNum==1}"> checked="checked"</c:if>/>★  
  114.                     </td>  
  115.                 </tr>  
  116.                   
  117.                 <tr>  
  118.                     <td class="columnTitle_mustbe">说明:</td>  
  119.                     <td class="tableContent"><textarea  name="remark" style="height:200px;width: 400px">${obj.remark}</textarea></td>  
  120.                 </tr>  
  121.             </table>  
  122.     </div>  
  123. </div>  
  124.    
  125.    
  126. </form>  
  127. </body>  
  128. </html>  

购销合同列表中原来已经添加有修改的按钮了:
[html]  view plain copy
  1. <li id="update"><a href="#" onclick="formSubmit('toupdate.action','_self');this.blur();">修改</a></li>  

效果:
点击修改(添加审单人、制单人等)



修改之后的结果



修改方法完成!

下面我们写删除方法:
Mapper文件中已经写好了删除的相关配置语句,那么来看我们的Dao层,因为我们继承了BaseDao以及BaseDaoImpl,所以我们拥有下面的方法:
[java]  view plain copy
  1. public void deleteById(Serializable id) {  
  2.     this.getSqlSession().delete(ns + ".deleteById", id);  
  3. }  
  4.   
  5.   
  6. public void delete(Serializable[] ids) {  
  7.     this.getSqlSession().delete(ns + ".delete", ids);  
  8. }  

所以Dao层不用再添加代码。

接下来是我们的Service层
之前我们已经在ContractService以及ContractServiceImpl添加了下面的方法
[java]  view plain copy
  1. @Override  
  2. public void delete(Serializable[] ids) {  
  3.     contractDao.delete(ids);  
  4. }  
  5.   
  6.   
  7. @Override  
  8. public void deleteById(Serializable id) {  
  9.     contractDao.deleteById(id);  
  10. }  
所以Service层无需添加代码

接下来看Controller层
我们在ContractController中添加以下方法
[java]  view plain copy
  1. //删除方法  
  2. @RequestMapping("/cargo/contract/delete.action")  
  3. public String delete(String[] ids){  
  4.     contractService.delete(ids);  
  5.       
  6.     return "redirect:/cargo/contract/list.action";  
  7. }  

我们list界面已经有删除按钮了:
[html]  view plain copy
  1. <li id="delete"><a href="#" onclick="formSubmit('delete.action','_self');this.blur();">删除</a></li>  

测试:

测试结果:



删除方法成功!

接下来我们来写查看方法
Mapper文件中已经写好了查看的相关配置语句,那么来看我们的Dao层,因为我们继承了BaseDao以及BaseDaoImpl,所以我们拥有下面的方法:
[java]  view plain copy
  1. public T get(Serializable id) {  
  2.     return this.getSqlSession().selectOne(ns + ".get", id);  
  3. }  

所以Dao层不用再添加代码。

之前我们已经在ContractService以及ContractServiceImpl添加了下面的方法
[java]  view plain copy
  1. @Override  
  2. public Contract get(Serializable id) {  
  3.     return contractDao.get(id);  
  4. }  
所以Service层无需添加代码

接下来看Controller层
我们在ContractController中添加以下方法
[java]  view plain copy
  1. //查看方法  
  2. @RequestMapping("/cargo/contract/toview.action")  
  3. public String toview(String id,Model model){  
  4.     Contract obj=contractService.get(id);  
  5.     model.addAttribute("obj", obj);  
  6.       
  7.     return "/cargo/contract/jContractView.jsp";  
  8. }  

我们来编写查看界面的jsp代码:
jContractView.jsp
[html]  view plain copy
  1. <%@ page language="java" pageEncoding="UTF-8"%>  
  2. <%@ include file="../../base.jsp"%>  
  3. <html xmlns="http://www.w3.org/1999/xhtml">  
  4. <head>  
  5.     <title>查看购销合同</title>  
  6.     <script language="javascript" src="${ctx}/js/datepicker/WdatePicker.js"></script>  
  7. </head>  
  8. <body>  
  9. <form method="post">  
  10.   
  11.   
  12. <div id="menubar">  
  13. <div id="middleMenubar">  
  14. <div id="innerMenubar">  
  15.     <div id="navMenubar">  
  16. <ul>  
  17. <li id="back"><a href="list.action">返回</a></li>  
  18. </ul>  
  19.     </div>  
  20. </div>  
  21. </div>  
  22. </div>  
  23.        
  24. <div class="textbox" id="centerTextbox">  
  25.       
  26.     <div class="textbox-header">  
  27.     <div class="textbox-inner-header">  
  28.     <div class="textbox-title">  
  29.         查看购销合同信息  
  30.     </div>   
  31.     </div>  
  32.     </div>  
  33. <div>  
  34.    
  35. <div>  
  36.         <table class="commonTable" cellspacing="1">  
  37.                 <tr>  
  38.                     <td class="columnTitle_mustbe">客户名称:</td>  
  39.                     <td class="tableContent">${obj.customName }</td>  
  40.                     <td class="columnTitle_mustbe">收购方:</td>  
  41.                     <td class="tableContent">${obj.offeror }</td>  
  42.                 </tr>  
  43.                   
  44.                 <tr>  
  45.                     <td class="columnTitle_mustbe">合同号:</td>  
  46.                     <td class="tableContent">${obj.contractNo }</td>  
  47.                     <td class="columnTitle_mustbe">签单日期:</td>  
  48.                     <td class="tableContent">  
  49.                     <fmt:formatDate value="${obj.signingDate }" pattern="yyyy-MM-dd"/>  
  50.                     </td>  
  51.                 </tr>  
  52.                   
  53.                 <tr>  
  54.                     <td class="columnTitle_mustbe">制单人:</td>  
  55.                     <td class="tableContent">${obj.inputBy }</td>  
  56.                     <td class="columnTitle_mustbe">审单人:</td>  
  57.                     <td class="tableContent">${obj.checkBy }</td>  
  58.                 </tr>  
  59.                   
  60.                  <tr>  
  61.                     <td class="columnTitle_mustbe">验货员:</td>  
  62.                     <td class="tableContent">${obj.inspector }</td>  
  63.                     <td class="columnTitle_mustbe">总金额:</td>  
  64.                     <td class="tableContent">${obj.totalAmount}</td>  
  65.                 </tr>  
  66.                   
  67.                  <tr>  
  68.                     <td class="columnTitle_mustbe">要求:</td>  
  69.                     <td class="tableContent">${obj.crequest}</td>  
  70.                     <td class="columnTitle_mustbe">交货期限:</td>  
  71.                     <td class="tableContent">  
  72.                     <fmt:formatDate value="${obj.deliveryPeriod }" pattern="yyyy-MM-dd"/>  
  73.                     </td>  
  74.                 </tr>  
  75.                   
  76.                 <tr>  
  77.                     <td class="columnTitle_mustbe">船期:</td>  
  78.                     <td class="tableContent">  
  79.                     <fmt:formatDate value="${obj.shipTime}" pattern="yyyy-MM-dd"/>  
  80.                     </td>  
  81.                     <td class="columnTitle_mustbe">贸易条款:</td>  
  82.                     <td class="tableContent">${obj.tradeTerms }</td>  
  83.                 </tr>  
  84.                   
  85.                 <tr>  
  86.                     <td class="columnTitle_mustbe">打印版式:</td>  
  87.                     <td class="tableContent">  
  88.                     <c:if test="${obj.printStyle=='2'}">两款</c:if>  
  89.                     <c:if test="${obj.printStyle=='1'}">一款</c:if>  
  90.                     </td>  
  91.                     <td class="columnTitle_mustbe">归档前状态:</td>  
  92.                     <td class="tableContent">${obj.oldState}</td>  
  93.                 </tr>  
  94.                   
  95.                 <tr>  
  96.                     <td class="columnTitle_mustbe">状态:</td>  
  97.                     <td class="tableContent">${obj.state}</td>  
  98.                     <td class="columnTitle_mustbe">走货状态:</td>  
  99.                     <td class="tableContent">${obj.outState}</td>  
  100.                 </tr>  
  101.                   
  102.                 <tr>  
  103.                     <td class="columnTitle_mustbe">重要程度:</td>  
  104.                     <td class="tableContent">  
  105.                     <c:if test="${obj.importNum==3}">★★★</c:if>  
  106.                     <c:if test="${obj.importNum==2}"></c:if>  
  107.                     <c:if test="${obj.importNum==1}"></c:if>  
  108.                     </td>  
  109.                 </tr>  
  110.                   
  111.                 <tr>  
  112.                     <td class="columnTitle_mustbe">说明:</td>  
  113.                     <td class="tableContent"><pre>${obj.remark}</pre></td>  
  114.                 </tr>  
  115.             </table>  
  116.     </div>  
  117. </div>  
  118.    
  119.    
  120. </form>  
  121. </body>  
  122. </html>  

我们list界面已经有查看按钮了:
[html]  view plain copy
  1. <li id="view"><a href="#" onclick="formSubmit('toview.action','_self');this.blur();">查看</a></li>  

测试:

测试结果:


查看方法成功!

到此购销合同的增删改查方法编写完毕
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值