发表于: 2017-11-26 23:29:26
1 696
今日完成的事情:
今天首先制作一个展示个人信息详情的页面,但是写好之后,发现没有办法跳转。因为:
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(String phone, String passWord, HttpServletResponse response,
Model model,RedirectAttributes attributes) throws Exception {
中间的代码省略掉了
//重定向之后向home主页传输数据
//把用户手机号,就是用户的账号放入RedirectAttributes中
//这种方法,用户的手机号码,在url中显示
// attributes.addAttribute("phone",phone);
//为了用户安全,把用户手机号,就是用户的账号放入RedirectAttributes中
attributes.addFlashAttribute("phone",phone);
attributes.addFlashAttribute("msg","Welcome");
return "redirect:/u/home";
} else {
model.addAttribute("msg", "密码不正确");
return "error";
}
} else {
model.addAttribute("msg", "手机号不正确");
return "error";
}
}
我的控制器最后是重定向到控制器,由控制器转发页面,所以重定向之后没有办法把数据传输到跳转的那个页面。
由于重定向相当于发送了两次请求。如果不用重定向的话,直接跳转到返回home页面,也可以实现。
但是我的操作逻辑是:
登陆之后是home页面,然后home页面可以点击个人信息,进去个人信息就可以查看和修改个人信息,并且home页面是不登陆就看不了的一个页面,被拦截器拦截。
然后为了实现这一串逻辑,我又重新学习了一个方法,用来实现重定向的同时,可以连带数据一起传输。
1)拼写url:
//这种方法,用户的手机号码,在url中显示
attributes.addAttribute("phone",phone);
效果:
url就把我的手机号拼写到了后面,然后可以在用@pathVariable获得手机号。后来考虑到这种方式,在你浏览home页面的时候会一直显示手机号,不安全,而且私密性不太好。所以弃用。
2)使用如下方法,RedirectAttributes里的值在页面使用刷新后会删除,所以也不会造成重复提交。
//为了用户安全,把用户手机号,就是用户的账号放入RedirectAttributes中
attributes.addFlashAttribute("phone",phone);
attributes.addFlashAttribute("msg","Welcome");
然后:
//主页,不登陆进入不了主页
@RequestMapping(value = "/u/home", method = RequestMethod.GET)
public String home(@ModelAttribute("phone") String phone, @ModelAttribute("msg") String msg) {
return "home";
}
//个人信息主页,此页可以查看和修改个人信息
用@ModelAttribute把存储在flashAttribute中的数据传回来,并且绑定到phone,前台就可以用EL表达式轻松获得数据。
至此,完美解决问题。
然后下午在准备小课堂,并且在做小课堂ppt。
这次小课堂,主要讲一下在任务六里面用到的memcache。
原理性的东西太复杂,自己也理解的不是很好。就讲一下memcache如何使用,以及常用的一些方法。
主要讲解memcache的操作命令,存储命令,查找命令,统计命令。
存储命令里面有,set,add,replace,append,prepend,以及cas。
查找命令里面有:get,gets,delete,incr和decr。
统计命令里面有:stas,stas items,stas slabs,stas size,flushAll。
具体如何使用明天会代码演示部分给大家操作。
明日计划的事情:
明日小课堂。
遇到的问题:
springMVC里面的东西挺多的,自己当时只顾做任务,回头来看一下,自己只是会了一点,还有很多的知识需要自己慢慢去补充。
收获:
重定向可以连带数据一起传递。
任务开始时间:2017/11/23
预计完成时间:2017/12/1
延期:无
禅道:http://task.ptteng.com/zentao/my-task.html
评论