基于javaweb+jsp的实验室管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)
JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript Layui Ajax
基础JSP+Servlet或JSP+SSM(Spring、SpringMVC、MyBatis)框架或JSP+SSM+Maven(pom.xml)框架或SpringBoot…均可
开发工具:eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
<if test ='id != null'>`id` = #{id},</if>
<if test ='noticeName != null'>`notice_name` = #{noticeName},</if>
<if test ='noticeText != null'>`notice_text` = #{noticeText},</if>
<if test ='noticeType != null'>`notice_type` = #{noticeType},</if>
<if test ='createDate != null'>`create_date` = #{createDate}</if>
</set>
WHERE `id` = #{id}
</update>
<!--获取-->
<select id="findById" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" /> FROM `t_notice` WHERE `id` = #{id}
</select>
<!--列表-->
<select id="findAllSplit" parameterType="java.util.Map" resultMap="BaseResultMap">
]
],
});
//监听工具条
table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
let data = obj.data; //获得当前行数据
let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
if (layEvent === 'del') { //删除
// layer.confirm('删除' + data.shiyanshiName + "?", function (index) {
$.ajax({
type: "GET",
dataType: "text",
url: "shiyanshiDelete?id=" + data.id,
success: function () {
console.log("已删除!");
}
});
obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
//parent.location.reload();//刷新父级页面
// layer.close(index);
//parent.location.reload();//刷新父级页面
layer.msg(data.shiyanshiName + ' 删除成功!');
// });
// });
} else if (layEvent === 'edit') { //编辑
layer.open({
type: 2,
area: ['800px', '550px'],
fixed: false, //不固定
maxmin: true,
content: 'shebeiEditPre?id=' + data.id
});
obj.update({});//同步更新缓存对应的值
} else if (layEvent === 'info') { //详情
layer.open({
type: 2,
area: ['800px', '650px'],
dataType: "text",
url: "shebeiDelete?id=" + data.id,
success: function () {
console.log("已删除!");
}
});
obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
//parent.location.reload();//刷新父级页面
// layer.close(index);
//parent.location.reload();//刷新父级页面
layer.msg(data.shebeiName + ' 删除成功!');
// });
} else if (layEvent === 'edit') { //编辑
weixiuService.delete(Arrays.asList(id));
this.redirectList(request, response);
}
/**
* 编辑维修
*
* @param response
* @param request
* @throws IOException
*/
@RequestMapping("weixiuEdit")
public void edit(HttpServletResponse response, HttpServletRequest request) throws IOException {
Weixiu vo = new Weixiu();
vo.setId(Long.valueOf(Util.decode(request, "id")));
vo.setWeixiuName(Util.decode(request, "weixiuName"));
vo.setWeixiuShiyanshi(Util.decode(request, "weixiuShiyanshi"));
vo.setWeixiuBaoxiuren(Util.decode(request, "weixiuBaoxiuren"));
vo.setWeixiuYuanyin(Util.decode(request, "weixiuYuanyin"));
vo.setWeixiuZhuangtai(Util.decode(request, "weixiuZhuangtai"));
</div>
<button class="layui-btn" data-type="reload">搜索</button>
</div>
</div>
<!-- 内容主体区域 -->
<table class="layui-hide" id="myData" lay-filter="myTable"></table>
</div>
</div>
<script src="js/layui/layui.js"/>
<script>
//JavaScript代码区域
layui.use('element', function () {
let element = layui.element;
});
</script>
<script type="text/html" id="myToolbar">
<div class="layui-btn-container">
<c:if test="${loginUser.userType == '管理员'}"><button class='layui-btn layui-btn-sm' lay-event='add'>添加</button></c:if>
</div>
</script>
<script>
</insert>
<!--批量删除-->
<delete id="doRemoveBatch" parameterType="java.util.Collection">
DELETE FROM `t_weixiu` WHERE `id` IN
<foreach collection="list" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
<!--修改-->
<update id="doUpdate" parameterType="com.demo.vo.Weixiu">
UPDATE `t_weixiu`
<set>
<if test ='id != null'>`id` = #{id},</if>
<if test ='weixiuName != null'>`weixiu_name` = #{weixiuName},</if>
<if test ='weixiuShiyanshi != null'>`weixiu_shiyanshi` = #{weixiuShiyanshi},</if>
<if test ='weixiuBaoxiuren != null'>`weixiu_baoxiuren` = #{weixiuBaoxiuren},</if>
<if test ='weixiuYuanyin != null'>`weixiu_yuanyin` = #{weixiuYuanyin},</if>
<if test ='weixiuZhuangtai != null'>`weixiu_zhuangtai` = #{weixiuZhuangtai},</if>
<if test ='weixiuBaoxiushjjian != null'>`weixiu_baoxiushjjian` = #{weixiuBaoxiushjjian},</if>
<if test ='weixiuWeixiuren != null'>`weixiu_weixiuren` = #{weixiuWeixiuren},</if>
<if test ='weixiuWeixiushijian != null'>`weixiu_weixiushijian` = #{weixiuWeixiushijian}</if>
</set>
<!--批量删除-->
<delete id="doRemoveBatch" parameterType="java.util.Collection">
DELETE FROM `t_notice` WHERE `id` IN
<foreach collection="list" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
<!--修改-->
<update id="doUpdate" parameterType="com.demo.vo.Notice">
UPDATE `t_notice`
<set>
<if test ='id != null'>`id` = #{id},</if>
<if test ='noticeName != null'>`notice_name` = #{noticeName},</if>
<if test ='noticeText != null'>`notice_text` = #{noticeText},</if>
<if test ='noticeType != null'>`notice_type` = #{noticeType},</if>
<if test ='createDate != null'>`create_date` = #{createDate}</if>
</set>
WHERE `id` = #{id}
</update>
return flag ? '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>' : '';
}
}
]
],
});
//监听工具条
table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
let data = obj.data; //获得当前行数据
let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
if (layEvent === 'del') { //删除
// layer.confirm('删除' + data.weixiuName + "?", function (index) {
$.ajax({
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
]
],
});
//监听工具条
table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
let data = obj.data; //获得当前行数据
let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
if (layEvent === 'del') { //删除
// layer.confirm('删除' + data.shebeiName + "?", function (index) {
$.ajax({
type: "GET",
dataType: "text",
url: "shebeiDelete?id=" + data.id,
success: function () {
console.log("已删除!");
}
vo.setWeixiuBaoxiuren(Util.decode(request, "weixiuBaoxiuren"));
vo.setWeixiuYuanyin(Util.decode(request, "weixiuYuanyin"));
vo.setWeixiuZhuangtai(Util.decode(request, "weixiuZhuangtai"));
vo.setWeixiuBaoxiushjjian(Util.decode(request, "weixiuBaoxiushjjian"));
vo.setWeixiuWeixiuren(Util.decode(request, "weixiuWeixiuren"));
vo.setWeixiuWeixiushijian(Util.decode(request, "weixiuWeixiushijian"));
//调用Service层的增加(insert)方法
weixiuService.insert(vo);
this.redirectList(request, response);
}
/**
* 删除维修
*
* @param response
* @param request
* @throws IOException
*/
@RequestMapping("weixiuDelete")
public void delete(HttpServletResponse response, HttpServletRequest request) throws IOException {
Serializable id = Util.decode(request, "id");
weixiuService.delete(Arrays.asList(id));
// 在图形上输出验证码字符,x和y都是随机生成的
g.drawString(String.valueOf(codeChar), 16 * i + random.nextInt(7), height - random.nextInt(6));
}
HttpSession session = request.getSession();
session.setMaxInactiveInterval(5 * 60);
// 将验证码保存在session对象中,key为validation_code
session.setAttribute("validationCode", validationCode.toString());
g.dispose();// 关闭Graphics对象
OutputStream os = response.getOutputStream();
ImageIO.write(image, "JPEG", os);// 以JPEG格式向客户端发送图形验证码
}
@RequestMapping("authResetPassword")
public void resetPassword(HttpServletResponse response, HttpServletRequest request) throws IOException, ServletException {
String msg;
User loginUser = (User) request.getSession().getAttribute("loginUser");
String oldPassword = Util.decode(request, "oldPassword");
if (!loginUser.getPassword().equals(oldPassword)) {
msg = "原密码错误!";
} else {
}
}
]
],
});
//监听工具条
table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
let data = obj.data; //获得当前行数据
let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
if (layEvent === 'del') { //删除
// layer.confirm('删除' + data.shiyanshiName + "?", function (index) {
$.ajax({
type: "GET",
dataType: "text",
<c:if test="${loginUser!=null}">
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item"><a>${loginUser.username}</a></li>
<li class="layui-nav-item"><a href="authLogout">退出登录</a></li>
</ul>
</c:if>
</div>
<div class="layui-side layui-bg-black">
<div class="layui-side-scroll">
<ul class="layui-nav layui-nav-tree" lay-filter="test">
<!-- 侧边栏 -->
<jsp:include page="menu.jsp">
<jsp:param value="active" name="Shiyanshi_active"/>
</jsp:include>
</ul>
</div>
</div>
<div class="layui-body">
<div class="search_style" style="padding-top: 10px;padding-left: 15px;">
<div class="searchTable">
搜索:
<div class="layui-inline">
<input class="layui-input" name="search_keyword" id="search_keyword" autocomplete="off" placeholder="名称">
<input type="hidden" class="layui-input" name="searchColumn" id="searchColumn" autocomplete="off" value="shiyanshi_name">
@Controller
@RequestMapping
public class ShebeiController {
@Autowired
private ShebeiService shebeiService;
/**
* 增加设备
*
* @param response
* @param request
* @throws IOException
*/
@RequestMapping("shebeiAdd")
public void add(HttpServletResponse response, HttpServletRequest request) throws IOException {
Shebei vo = new Shebei();
//取出页面传进来的参数
vo.setShebeiName(Util.decode(request, "shebeiName"));
vo.setShebeiShiyanshi(Util.decode(request, "shebeiShiyanshi"));
vo.setShebeiShuliang(Util.decode(request, "shebeiShuliang"));
public String getWeixiuBaoxiuren() {
return weixiuBaoxiuren;
}
public void setWeixiuBaoxiuren(String weixiuBaoxiuren) {
this.weixiuBaoxiuren = weixiuBaoxiuren;
}
public String getWeixiuYuanyin() {
return weixiuYuanyin;
}
public void setWeixiuYuanyin(String weixiuYuanyin) {
this.weixiuYuanyin = weixiuYuanyin;
}
public String getWeixiuZhuangtai() {
return weixiuZhuangtai;
}
运行环境
Java≥6、Tomcat≥7.0、MySQL≥5.5
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
技术框架
JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript Layui Ajax
基础JSP+Servlet或JSP+SSM(Spring、SpringMVC、MyBatis)框架或JSP+SSM+Maven(pom.xml)框架或SpringBoot…均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
登录、注册、退出、用户模块、公告模块、设备模块、实验室模块、维修模块的增删改查管理
