SpringMVC不同Controller内部调用不同的Controller的问题

SpringMVC不同Controller内部调用不同的Controller的问题

今天再写一个忘记密码进行密码修改的后台时遇到一个问题

思路

1.首先需要验证用户名和邮箱账号
2.后台接收、检验账号和密码
3.检验成功后调用随机生成验证码的Controller,随机生成一个验证码
4.使用邮件发送的Controller向指定的用户发送随机生成验证码
5.用户接收验证码,输入到验证码输入框
6.后台验证Session中和用户输入的验证码是否一致
7.验证成功,给予修改密码

以上就表示一个Ajax异步请求的Controller中需要调用两个不同的Controller下的不同方法

我第一时间想到的是使用

response.sendRedirect("验证码控制器?date="+ new date);
或者
request.getRequestDispatcher("验证码控制器?date="+ new date).forward(request, response);
然后发送邮件
response.sendRedirect("发送邮件控制器?userEmail="+user.getEmail);
或者
request.getRequestDispatcher("发送邮件控制器?userEmail="+user.getEmail).forward(request, response);

由于几次失败甚至出现了
response.getWriter().print("<script>location.href='发送邮件控制器?userEmail="+user.getEmail;</script>");
确实惨目忍睹;本人也是自学新手一枚,哈哈哈

其实我已在无形中已经被spring给绕进去了;而却忘记了Controller自己本身就是一个类,是个类我们就可以直接NEW它嘛!我直接实例一个Controller在用它调用它下面的对应的发放,其实spring是很灵活的,就是把自己绕进去了

完整代码

@ResponseBody
	public int querMailByUsername(String username,String mail,HttpServletResponse response,HttpServletRequest request,HttpSession session) throws Exception{
		int fag = 0;
		CheckCode checkCode = new CheckCode();
		checkCode.checkCode(request, response);
		String serverCC =  (String) session.getAttribute("verCode");	//服务器发送的验证码
		User user = userService.queryUserByUsernName(username);
		if(user != null && user.getEmail().equalsIgnoreCase(mail)) {
			try {
				Mail.SendMail(user.getEmail(),serverCC);						//用户的邮箱和随机验证码
				fag=0;
			} catch (Exception e) {
				e.printStackTrace();
				System.out.println(e.getMessage());
				fag=2;
			}
		}else {
			fag=1;
		}
	return fag;
	}

总结在一个Controller中需要使用另外的Controller下的某个方法时需了解Controller也是一个类我们直接new再去点它方法,他需要什么参数就给它,效果理想

------------------新手一个,实现的方法可能简单粗暴,大神请多指点-------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值