需求的问题:
数据库的内容:
在这里插入图片描述
前端页面:
在这里插入图片描述

前端操作:
点击修改时,把选中信息的“课程名称”与数据库内容相比较。
①如果此“课程名称”数据库中有数据,页面应变为:
在这里插入图片描述

②如果此“课程名称”数据库中没有数据,页面应变为:
在这里插入图片描述
想法:
在前端作比较
java代码:
①查询数据库的“课程信息”

// 课程名字下拉框
@RequiresPermissions("testcourselive:courseLive:edit")
@RequestMapping(value = "selectCourseName")
@ResponseBody
public List<String> selectCourseName() {
	// 测试是否成功访问
	System.out.println("----------------selectCourseName run-----------");
	List<String> courseName = courseService.selectCourseName();
	return courseName;
}

②把选中信息的“课程名字”传到前端(因为之前一些功能实现,不想修改,就通过session来实现了)

@RequiresPermissions("testcourselive:courseLive:view")
@RequestMapping(value = "form")
public String form(CourseLive courseLive, Model model) {
	System.out.println("=============form run================");
	//创建session
	HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
	HttpSession session = request.getSession();
	//存session
	session.setAttribute("courseName", courseLive.getCourseName());
	System.out.println("sessionCourseName:" + session.getAttribute("courseName"));
	model.addAttribute("courseLive", courseLive);
	return "modules/testcourselive/courseLiveForm";
}

js代码:

<%
	//jsp中
	String sessionCourseName=(String)session.getAttribute("courseName");
%>
//获取下拉列表
$.ajax({
	url: "${ctx}/testcourselive/courseLive/selectCourseName",
	type: "post",
	dataType: "json",
	success: function(nameList) {
		var count = 0;
		for (var i in nameList) {
			if (nameList[i].courseName == courseName) {
				//alert("下拉列表有重复的名字");
				count++;
			}
		}
		//alert("下拉框是否有重复的,1有0无。"+count);
		if (count == 0 && courseName != "null") {
			//alert("false ok");
			$("#checkTest").prop("checked", false);
			var temp =
				"<input type='text' name='courseName' class='layui-input' value='${courseLive.courseName }'>";
			$("#courseName011").children().remove();
			$("#courseName011").html(temp);
			layui.use('form', function() {
				var form = layui.form;
				form.render("checkbox");
			});
		} else {
			var temp = "<select name='courseName'>";
			for (var i in nameList) {
				if (nameList[i].courseName == '${courseLive.courseName }') {
					temp += "<option selected>" + nameList[i].courseName +
						"</option>";
				} else {
					temp += "<option>" + nameList[i].courseName +
						"</option>";
				}
			};
			temp += "</select>";
			$("#courseName011").html(temp);
			layui.use('form', function() {
				var form = layui.form;
				form.render();
			});
		}
	},
});

(因为前端使用了layui所以会有一些layui的东西)
html代码:

<div class="layui-form-item">
	<label class="layui-form-label">现有课程:</label>
	<div class="layui-col-md3">
		<input type="checkbox" lay-skin="primary" checked lay-filter="checkTest" id="checkTest">
	</div>
</div>

<div class="layui-form-item">
	<label class="layui-form-label">课程名称:<span class="help-inline">
	<font color="red">*</font></span></label>
	<div class="layui-col-md2" id="courseName011">

	</div>
</div>

收获:后端存session前端取session
①方法参数中没有HttpServletRequest request

public String form(CourseLive courseLive, Model model) {
	HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
	HttpSession session = request.getSession();
	session.setAttribute("courseName", courseLive.getCourseName());
	System.out.println("sessionCourseName:" + session.getAttribute("courseName"));
}

②方法参数中有HttpServletRequest request

public String list( HttpServletRequest request, HttpServletResponse response, Model model) {
	HttpSession session = request.getSession();
	session.setAttribute("courseName", courseLive.getCourseName());
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐