SpingMVC Controller 传提示信息到jsp页面 并 通过js弹出框显示

一、实现思路

Demo: 判断用户输入验证码 和 session域中验证码 的值,是否一致,若否,则 跳转到初始页面并弹出提示框。


方法一(未必可行): 利用 response.getWriter().println函数实现

response.getWriter().println("");
					

result :如果使用此方法后,tomcat 既没反应 也没跳转 更没有弹出提示信息的提示框,请使用方法二。


方法二(推荐):实现思路

1) 利用Map、ModelAndView、ModelMap等将 提示信息写入 request域中

2)利用 jstl 标签 读取 request域中提示信息,并 利用 alert方法显示。

方法二:实现过程

a. SpringMVC controller文件

利用Map 将 要提示的信息 存入request域

	@RequestMapping("logInNew.pass.action")
	public String  logInNew(HttpServletRequest request,@RequestParam("code") String code ,Map<String, String> map) throws Exception {
		User user = new User();
		HttpSession session = request.getSession();
		
		if (!code.equalsIgnoreCase((String) session.getAttribute("randCheckCode"))) {
		//如果验证码校验失败
			map.put("info_msg", "验证码输入错误");
			//跳转到 初始页面的绝对路径
			return "redirect:/SSM/load.jsp";
		}else {
		...
		}
		return "";
	}
	

当验证码输入错误时,,执行结果仅仅如下图:
在这里插入图片描述
对,map的提示信息确实已经存入request域中。

b. jsp页面

需要用到JSTL标签库, 自行下载。

步骤一: 引入JSTL标签库

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

步骤二: 利用判断 info_esg是否没空 并 利用 javascript alert方法弹出提示框

 

注:${param.info_msg} 获取request域中info_msg参数值。
如,
http://localhost:8080/hardshipWork/SSM/load.jsp?info_msg=验证码输入错误
则,
利用 ${param.info_msg} = “验证码输入错误”

注意: 此处不是利用 ${requestScope.info_msg}读取 info_msg信息的!!!

JSP实例代码

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
<title>小学生课堂任务管理系统</title>
</head>
<body>
<c:if test="${(param.info_msg != '') || !(empty param.info_msg) }"> <script> alert("${param.info_msg}");</script></c:if> 
</body>`

### 运行结果截图
![在这里插入图片描述](https://img-blog.csdnimg.cn/202002112222150.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0ludXlhc2hhXzEzMTQ=,size_16,color_FFFFFF,t_70)

你可能感兴趣的:(springMVC)