Springmvc+mybaties结合前端layui简单弹窗新增修改信息demo前后端代码

这篇博客介绍了如何将Springmvc和Mybatis框架与前端layui库结合,实现信息的弹窗新增和修改功能。通过Controller层的代码展示,包括初始化信息的方法,并给出了对应的JavaScript实现。文章附带了实际操作的效果图。

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

Contorller层代码,当修改信息时,需要初始化一次,所以要走写两个方法

		/**
	 * @param stationInfo
	 * @return 新增修改自动站气象信息
	 */
	@RequestMapping("XXX")
	@ResponseBody
	public BaseDataResult updateStationEquipmentInfo(@RequestBody StationEquipmentInfo stationEquipmentInfo) {
		Principal principal = getLoginAdminInfo();
		if (null == principal) {
			logger.info("--------------获取登录用户身份信息为空!");
			return new BaseDataResult(Constans.FAILED, "获取登录用户身份信息为空");
		}
		BaseDataResult result = equipmentInfoService.insertOrUpdate(stationEquipmentInfo);
		return result;
	}

	/**
	 * @param id
	 * @return 初始化站点气象信息
	 */
	@RequestMapping("xxx")
	@ResponseBody
	public BaseDataResult initEqDetail(Integer id) {
		Principal principal = getLoginAdminInfo();
		if (null == principal) {
			logger.info("--------------获取登录用户身份信息为空!");
			return new BaseDataResult(Constans.FAILED, "获取登录用户身份信息为空");
		}
		StationEquipmentInfo eqInfo = equipmentInfoService.getEqInfo(id);
		return new BaseDataResult(Constans.SUCCESS, "", eqInfo);
	}

实现方法

public BaseDataResult insertOrUpdate(StationEquipmentInfo stationEquipmentInfo) {
        String type="";
        int result=0;
        try {
            if(stationEquipmentInfo !=  null && stationEquipmentInfo.getId() ==null) {//新增站点气象信息
                //判断站点气象信息是否存在
                type="新增";
                result =stationEquipmentInfoMapper.insertSelective(stationEquipmentInfo) ;
            }else{
                type="修改";
                result =stationEquipmentInfoMapper.updateByPrimaryKeySelective(stationEquipmentInfo);
            }
            if(result>0) {
                return new BaseDataResult(Constans.SUCCESS, type+"站点气象信息成功");
            }
            return new BaseDataResult(Constans.FAILED, type+"站点气象信息失败");
            
        } catch (Exception e) {
            logger.info("--------------"+type+"站点信息异常-----!",e.getMessage());
            return new BaseDataResult(Constans.FAILED, type+"站点气象信息失败");
        }
        
    }
//修改完以后要从数据库更新一次
@Override
    public StationEquipmentInfo getEqInfo(Integer stationId) {
        StationEquipmentInfo info = new StationEquipmentInfo();
        info.setStationInfoId(stationId);
        return stationEquipmentInfoMapper.selectOne(info);
    }
``
做一个隐藏的<from弹框>
	<form <%-- action="${pageContext.request.contextPath}/xxx/xxx" --%>
		method="POST" id="adminForm" class="layui-form"  >
		<div class="changePage1 layer-page "
			style="display: none; color: #333; overflow: scroll-y;height:260px;">
			<!-- 气象id -->
			<input class="id" name="id" type="hidden" value="">
			<input class="stationInfoId" name="stationInfoId" type="hidden" value="">
			<div class="layer-page-form-input">
				<label for="" class="layer-label">机箱号</label> <input  class="caseNo"
					name="caseNo" type="text" placeholder="请输入机箱号">
			</div>
			<div class="layer-page-form-input">
				<label for="" class="layer-label">风向风速</label> <input class="windSpeed" 
					name="windSpeed" type="text" placeholder="请输入风向风速">
			</div>
			<div class="layer-page-form-input">
				<i class="color-r">*</i>温馨提示:请确保填写信息无误!
			</div>
		</div>
	</form>
在table中做一个点击选项,点击后弹出弹框,传入该条数据的id
```<td>	<a class="changeClick layui-icon iconfont icon-qixiang" title="修改站点气象信息"  onClick="updateStationEquipment('${station.id }') "></a></td>

对应的js

var IN,UI;    // IN 当前dialog索引
var dat;     // 判断新增站点气象信息和修改站点气象信息的依据
var form;
layui.use(['form'],function() {
	form = layui.form;
	// 添加或者修改
	form.on('submit(demoAjax1)', function(data){
		updateStationEquipmentInfo(dat);
	});
	
})
/**
 * @author wilson
 *初始化站点气象信息
 */
function initEqDetaioll(stationInfoId){
	var data={"id":stationInfoId};
	$.ajax(
	{
		// 方法所在页面和方法名
		dataType : "json",
		data : data,
		async:	false,
		url : "initEqDetail",
		success : function(data) {
			var eq=data.data;
		
			if(data.code == 1){ //成功
				if(eq == null){    //新增
					$(".id").val("");
					$(".stationInfoId").val("");
					$(".caseNo").val("");
				}else{   //修改
					$(".id").val(eq.id);
					$(".stationInfoId").val(eq.stationInfoId);
					$(".caseNo").val(eq.caseNo);
				}
			}else{
				layer.msg(data.error);
			}
		}
  });
}
/**
 * @param operationType
 * @param id
 * @returns
 * 增加修改站点气象信息弹窗
 */
updateStationEquipment=function (stationInfoId) {
	timedRefresh = false;
	var that = this;
	initEqDetaioll(stationInfoId);
	
	var id = $(".id").val();
	dat={id:id}
	if(id == ""){  // 新增
		$(".caseNo").val("");
		$(".windSpeed").val("");
		$(".tempHumidity").val("");
		$(".conspicurity").val("");
		layer.open({
			type : 1,
			resize : false,
			title : '站点信息气象新增',
			btn : [ '确定', '取消' ],
			area : [ '670px' ],
			offset : '80px',
			content : $('.changePage1'),
			yes : function(index) {
				IN=index;
				dat = {stationInfoId:stationInfoId};
			},
			cancel: function(){ 
			    //关闭弹窗,改变其值
				timedRefresh = true;
			  } ,
			btn2: function(index, layero){
				//取消弹窗,改变其值
				timedRefresh = true;
			}
		})
	}else{   // 修改
		layer.open({
			type : 1,
			resize : false,
			title : '站点气象信息修改',
			btn : [ '确定', '取消' ],
			area : [ '670px' ],
			offset : '80px',
			content : $('.changePage1'),
			yes : function(index) {
				IN=index;
				dat = {id:id,stationInfoId:stationInfoId};
			},
			cancel: function(){ 
			    //关闭弹窗,改变其值
				timedRefresh = true;
			  } ,
			btn2: function(index, layero){
				//取消弹窗,改变其值
				timedRefresh = true;
			}
		})
	}
	$("a.layui-layer-btn0").attr("lay-submit","").attr("lay-filter","demoAjax1")
};
/**
 * 新增修改站点气象信息逻辑
 * 
 * */
updateStationEquipmentInfo=function (dat) {
	timedRefresh = false;
	var id = $(".id").val();
	var stationInfoId= dat.stationInfoId;
	
	if(id ==	""){
		id="";  //通过id是否为空判断是添加还是修改
	}
	var stationInfoId = stationInfoId;
	var caseNo = $(".caseNo").val();
	var windSpeed = $(".windSpeed").val();
	var tempHumidity = $(".tempHumidity").val();
	var conspicurity = $(".conspicurity").val();
	var url = "updateStationEq";
	var data = {
			"id":id,
			"stationInfoId":stationInfoId,
			"caseNo":caseNo,	
			"windSpeed" : windSpeed,
			"tempHumidity" : tempHumidity,
			"conspicurity" : conspicurity,
	};
	$.ajax({
		type : "Post",
		// 方法所在页面和方法名
		contentType : "application/json; charset=utf-8",
		dataType : "json",
		data : JSON.stringify(data),
		url : url,
		success : function(data) {
			if(data.code == 0){
			    return layer.msg(data.error);
			  }else{   //成功
				  layer.closeAll();
				  layer.msg(data.error, {icon: 1});
				  setTimeout(function(){
						$("#form").submit();
				  },500);
			  }
		}
	});
}

效果图如下在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值