当前位置:网站首页>Simple case of SSM framework
Simple case of SSM framework
2022-07-07 05:34:00 【_ Xiao Xu_】
By the end ssm A simple case is made after the framework , Realize simple addition, deletion, modification and search .
Project structure chart :



See project structure :
Key code :
The front is jsp technology , You can also use it vue Separate your choice .
Order page :
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page isELIgnored="false" %>
<%@include file="./common/head.jsp"%>
<div class="right">
<div class="location">
<strong> Your current position is :</strong>
<span> Order management page </span>
</div>
<div class="search">
<form method="get" action="${pageContext.request.contextPath }/jsp/bill.do">
<input name="method" value="query" class="input-text" type="hidden">
<span> Name of commodity :</span>
<input name="queryProductName" type="text" value="${queryProductName }">
<span> supplier :</span>
<select name="queryProviderId">
<c:if test="${providerList != null }">
<option value="0">-- Please select --</option>
<c:forEach var="provider" items="${providerList}">
<option value="${provider}">${
provider}</option>
</c:forEach>
</c:if>
</select>
<span> Whether to pay :</span>
<select name="queryIsPayment">
<option value="0">-- Please select --</option>
<option value="1" ${
queryIsPayment == 1 ? "selected=\"selected\"":"" }> Unpaid </option>
<option value="2" ${
queryIsPayment == 2 ? "selected=\"selected\"":"" }> Paid </option>
</select>
<input value=" check Inquiry " type="submit" id="searchbutton">
<a href="${pageContext.request.contextPath }/billadd"> Add order </a>
</form>
</div>
<!-- Billing form Styles are common to suppliers -->
<table class="providerTable" cellpadding="0" cellspacing="0">
<tr class="firstTr">
<th width="10%"> Order number </th>
<th width="20%"> Name of commodity </th>
<th width="10%"> supplier </th>
<th width="10%"> Order amount </th>
<th width="10%"> Whether to pay </th>
<th width="10%"> Creation time </th>
<th width="30%"> operation </th>
</tr>
<c:forEach var="bill" items="${billList }" varStatus="status">
<tr>
<td>
<span>${
bill.billCode }</span>
</td>
<td>
<span>${
bill.productName }</span>
</td>
<td>
<span>${
bill.providerId}</span>
</td>
<td>
<span>${
bill.totalPrice}</span>
</td>
<td>
<span>
<c:if test="${bill.isPayment == 1}"> Unpaid </c:if>
<c:if test="${bill.isPayment == 2}"> Paid </c:if>
</span>
</td>
<td>
<span>
${
bill.creationDate}
</span>
</td>
<td>
<span><a class="viewBill" href="${pageContext.request.contextPath }/billview?code=${bill.billCode}" billid=${
bill.id } billcc=${
bill.billCode }><img src="${pageContext.request.contextPath }/images/read.png" alt=" see " title=" see "/></a></span>
<span><a class="modifyBill" href="${pageContext.request.contextPath }/billmodify?code=${bill.billCode}" billid=${
bill.id } billcc=${
bill.billCode }><img src="${pageContext.request.contextPath }/images/xiugai.png" alt=" modify " title=" modify "/></a></span>
<span><a class="deleteBill" href="javascript:deleteBill();" billid=${
bill.id } billcc=${
bill.billCode }><img src="${pageContext.request.contextPath }/images/schu.png" alt=" Delete " title=" Delete "/></a></span>
</td>
</tr>
</c:forEach>
</table>
</div>
</section>
<!-- Click the delete button to pop up the page -->
<div class="zhezhao"></div>
<div class="remove" id="removeBi">
<div class="removerChid">
<h2> Tips </h2>
<div class="removeMain">
<p> Are you sure you want to delete this order ?</p>
<a href="#" id="yes"> determine </a>
<a href="#" id="no"> Cancel </a>
</div>
</div>
</div>
<%@include file="./common/foot.jsp" %>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/billlist.js"></script>
The interface is not as good-looking as the one above , The framework downloads itself .
Supplier page :
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@include file="./common/head.jsp"%>
<div class="right">
<div class="location">
<strong> Your current position is :</strong>
<span> Supplier management page </span>
</div>
<div class="search">
<form method="get" action="${pageContext.request.contextPath }/provider.select">
<input name="method" value="query" type="hidden">
<span> Supplier code :</span>
<input name="queryProCode" type="text" value="${queryProCode }">
<span> Name of supplier :</span>
<input name="queryProName" type="text" value="${queryProName }">
<input value=" check Inquiry " type="submit" id="searchbutton">
<a href="${pageContext.request.contextPath }/jsp/provideradd.jsp"> Add supplier </a>
</form>
</div>
<!-- Supplier operation form -->
<table class="providerTable" cellpadding="0" cellspacing="0">
<tr class="firstTr">
<th width="10%"> Supplier code </th>
<th width="20%"> Name of supplier </th>
<th width="10%"> Contacts </th>
<th width="10%"> contact number </th>
<th width="10%"> Fax </th>
<th width="10%"> Creation time </th>
<th width="30%"> operation </th>
</tr>
<c:forEach var="provider" items="${providerList }" varStatus="status">
<tr>
<td>
<span>${provider.proCode }</span>
</td>
<td>
<span>${provider.proName }</span>
</td>
<td>
<span>${provider.proContact}</span>
</td>
<td>
<span>${provider.proPhone}</span>
</td>
<td>
<span>${provider.proFax}</span>
</td>
<td>
<span>
${provider.creationDate}
</span>
</td>
<td>
<span><a class="viewProvider" href="${pageContext.request.contextPath }/providerview?code=${provider.proCode}" proid=${provider.id } proname=${provider.proName }><img src="${pageContext.request.contextPath }/images/read.png" alt=" see " title=" see "/></a></span>
<span><a class="modifyProvider" href="${pageContext.request.contextPath }/provideralter?code=${provider.proCode}" proid=${provider.id } proname=${provider.proName }><img src="${pageContext.request.contextPath }/images/xiugai.png" alt=" modify " title=" modify "/></a></span>
<span><a class="deleteProvider" href="javascript:;" proid=${provider.id } proname=${provider.proName }><img src="${pageContext.request.contextPath }/images/schu.png" alt=" Delete " title=" Delete "/></a></span>
</td>
</tr>
</c:forEach>
</table>
</div>
</section>
<!-- Click the delete button to pop up the page -->
<div class="zhezhao"></div>
<div class="remove" id="removeProv">
<div class="removerChid">
<h2> Tips </h2>
<div class="removeMain" >
<p> Are you sure you want to delete this supplier ?</p>
<a href="#" id="yes"> determine </a>
<a href="#" id="no"> Cancel </a>
</div>
</div>
</div>
<%@include file="./common/foot.jsp" %>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/providerlist.js"></script>
It is mainly the interaction part of the front and back end , All controllers are controlled by spring Container control , Pay attention to releasing static resources .
Order background :
package cms.ssm.controller;
import cms.ssm.dao.BillMapper;
import cms.ssm.dao.ProviderMapper;
import cms.ssm.model.Bill;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Controller
public class BillController {
@Resource
private BillMapper billMapper;
@Resource
private ProviderMapper providerMapper;
@GetMapping("/bill")
public String showBill(Model model){
List<Bill> bills = billMapper.selectAll();
List<String> list = providerMapper.selectProviderNames();
model.addAttribute("billList",bills);
model.addAttribute("providerList",list);
return "/jsp/billlist.jsp";
}
@GetMapping("/billview")
public String showOne(@RequestParam("code") String code,Model model){
Bill bill = billMapper.selectByCode(code);
model.addAttribute("bill",bill);
return "/jsp/billview.jsp";
}
@GetMapping("/billmodify")
public String alterBill(@RequestParam("code") String code,Model model){
Bill bill = billMapper.selectByCode(code);
List<String> list = providerMapper.selectProviderNames();
model.addAttribute("bill",bill);
model.addAttribute("provider",list);
return "/jsp/billmodify.jsp";
}
@GetMapping(value = "/jsp/bill.do")
public String select_more(@RequestParam("method") String method,@RequestParam("queryProductName") String queryProductName,@RequestParam("queryIsPayment") int queryIsPayment,Model model){
List<Bill> billList = billMapper.selectMore("%"+queryProductName+"%", queryIsPayment);
model.addAttribute("billList",billList);
return "/jsp/billlist.jsp";
}
@GetMapping(value = "/billadd")
public String billAdd(Model model){
List<String> list = providerMapper.selectProviderNames();
model.addAttribute("list",list);
return "/jsp/billadd.jsp";
}
@RequestMapping(value = "/billadd.do", method = RequestMethod.GET)
public void billAddColumn(@RequestParam("billCode") String billCode, @RequestParam("productName") String productName, @RequestParam("productCount") Double productCount,@RequestParam("productUnit") String productUnit,@RequestParam("providerId") int providerId){
Bill bill =new Bill();
bill.setBillCode(billCode);
bill.setProductName(productName);
bill.setProductCount(productCount);
bill.setProductUnit(productUnit);
bill.setProviderId(providerId);
billMapper.insertOneBill(bill);
}
}
Supplier background :
package cms.ssm.controller;
import cms.ssm.dao.ProviderMapper;
import cms.ssm.dao.UserMapper;
import cms.ssm.model.Provider;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.List;
@Controller
public class ProviderController {
@Resource
private ProviderMapper providerMapper;
// @Resource
// private UserMapper userMapper;
@GetMapping(value = "/provider")
public String showProviders(Model model){
List<Provider> list= providerMapper.selectAll();
//List<String> roles= userMapper.select_all_role();
model.addAttribute("providerList",list);
return "jsp/providerlist.jsp";
}
@GetMapping(value = "/providerview")
public String providerView(@RequestParam("code") String code,Model model){
Provider provider= providerMapper.selectById(code);
model.addAttribute("provider",provider);
return "/jsp/providerview.jsp";
}
@GetMapping(value = "/provideralter")
public String providerAlter(@RequestParam("code") String code,Model model){
Provider provider= providerMapper.selectById(code);
model.addAttribute("provider",provider);
return "/jsp/providermodify.jsp";
}
@GetMapping(value = "/provider.select")
public String providerSelect(Model model,@RequestParam("queryProCode") String queryProCode,@RequestParam("queryProName") String queryProName){
List<Provider> list = providerMapper.selectMore("%"+queryProCode+"%", "%"+queryProName+"%");
model.addAttribute("providerList",list);
return "/jsp/providerlist.jsp";
}
@GetMapping(value = "/provideradd.do")
public String providerAdd(@RequestParam("proCode") String proCode,@RequestParam("proName") String proName,@RequestParam("proContact") String proContact,@RequestParam("proPhone") String proPhone,@RequestParam("proAddress") String proAddress,@RequestParam("proFax") String proFax,@RequestParam("proDesc") String proDesc){
Provider provider = new Provider();
provider.setProCode(proCode);
provider.setProName(proName);
provider.setProContact(proContact);
provider.setProPhone(proPhone);
provider.setProAddress(proAddress);
provider.setProFax(proFax);
provider.setProDesc(proDesc);
providerMapper.insertOne(provider);
return "/jsp/provideradd.jsp";
}
@GetMapping(value = "/provider.oparater")
@ResponseBody
public String providerOparater(@RequestParam("proid") int id){
providerMapper.delById(id);
String delResult = "true";
return delResult;
}
}
Only some codes are referenced
边栏推荐
- When deleting a file, the prompt "the length of the source file name is greater than the length supported by the system" cannot be deleted. Solution
- Life experience of an update statement
- Flink SQL realizes reading and writing redis and dynamically generates hset key
- How can professional people find background music materials when doing we media video clips?
- Reading the paper [sensor enlarged egocentric video captioning with dynamic modal attention]
- [论文阅读] A Multi-branch Hybrid Transformer Network for Corneal Endothelial Cell Segmentation
- Getting started with DES encryption
- Mybaits之多表查询(联合查询、嵌套查询)
- K6el-100 leakage relay
- 高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏
猜你喜欢

CVE-2021-3156 漏洞复现笔记

1. AVL tree: left-right rotation -bite

CentOS 7.9 installing Oracle 21C Adventures

利用OPNET进行网络仿真时网络层协议(以QoS为例)的使用、配置及注意点

English语法_名词 - 所有格

Lombok插件

Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem

照片选择器CollectionView

高压漏电继电器BLD-20

阿里云的神龙架构是怎么工作的 | 科普图解
随机推荐
基于 hugging face 预训练模型的实体识别智能标注方案:生成doccano要求json格式
LabVIEW is opening a new reference, indicating that the memory is full
K6el-100 leakage relay
不同网段之间实现GDB远程调试功能
删除文件时提示‘源文件名长度大于系统支持的长度’无法删除解决办法
Mybaits之多表查询(联合查询、嵌套查询)
Is the human body sensor easy to use? How to use it? Which do you buy between aqara green rice and Xiaomi
漏电继电器JELR-250FG
Educational Codeforces Round 22 B. The Golden Age
JHOK-ZBL1漏电继电器
sql优化常用技巧及理解
When deleting a file, the prompt "the length of the source file name is greater than the length supported by the system" cannot be deleted. Solution
nodejs获取客户端ip
Leetcode 1189 maximum number of "balloons" [map] the leetcode road of heroding
Design, configuration and points for attention of network arbitrary source multicast (ASM) simulation using OPNET
JVM (19) -- bytecode and class loading (4) -- talk about class loader again
消息队列:重复消息如何处理?
【js组件】自定义select
The navigation bar changes colors according to the route
Most commonly used high number formula