发表于: 2017-10-12 23:48:25
1 673
今天完成的事情:今天还是在做那个项目,完善了一下.
没什么好说的,直接把我页面和controller粘一遍吧
//注解控制器
@Controller
//类的url是"/"
@RequestMapping("/")
public class StudentController {
//依赖注入
@Autowired
StudentService studentService;
// 进入欢迎页
@RequestMapping(value="/index")
public String index(){
return "index";
}
// 进入登录页面,点击登录按钮触发
@RequestMapping(value="/login" )
public String login(){
return"login";
}
//进入注册页面,点击注册按钮触发
@RequestMapping(value = "/register")
public String register(){
return "register";
}
// 点击注册页面提交按钮触发
@RequestMapping(value = "/registerIn")
public String registerIn(String info_user,String info_password) {
//这个对象不可赋值为空,对于null,和等于new Student()是不一样的,赋值为空调用方法会报空指针错误
Student student=new Student();
LoginInfo loginInfo =new LoginInfo();
//首先判断用户名是否已被注册
if (studentService.selectLoginInfoByInfo_user(info_user) == null) {
//取得系统当前距1970年的毫秒数,作为创建student信息的create_at
java.util.Date dt = new Date();
// System.out.println(dt.toString());
long create_at = dt.getTime();
student.setCreate_at(create_at);
//将student的create_at存进student表里,这个时候因为student表ID自增,所以创建一条只包含ID和create_at的学生信息
studentService.insertStudent(student);
//然后按照create_at查出这个学生的ID,作为loginInfo的info_id
Long ID = studentService.selectStudentID(create_at);
//然后将loginInfo的info_id,info_user,info_user,info_password,和info_ed(代表是否初次登录)组成一条信息存进logininfo的表里,且ID和info_id对应
loginInfo.setInfo_id(ID);
loginInfo.setInfo_user(info_user);
loginInfo.setInfo_password(info_password);
loginInfo.setInfo_ed(0);
studentService.insertLoginInfo(loginInfo);
return "login";
}
//如果用户名重复,则跳到userRepeat jsp页面
else{
return "userRepeat";
}
}
//点击登录页面的登录按钮触发
@RequestMapping(value = "/loginIn")
public ModelAndView loginIn (String info_user,String info_password){
ModelAndView mav=new ModelAndView();
//根据页面填写的info_user,info_password查找是否有符合的记录
LoginInfo loginInfo=studentService.selectLoginInfoByUP(info_user,info_password);
//判断注册是否有这个用户
if (loginInfo!= null) {
//判断这个用户是否首次登录,如果是首次登录,调到improve.jsp 去完善信息
if (loginInfo.getInfo_ed() == 0) {
//根据登录填写的info_id查出对应的student,将这条信息作为model传给improve页面
Student student = studentService.selectStudentByID(loginInfo.getInfo_id());
mav = new ModelAndView();
mav.addObject("student", student);
mav.setViewName("improve");
return mav;
}
//如果不是首次登录,直接进入listStudent页面
else {
mav.setViewName("redirect:/listStudent");
return mav;
}
//如果登录信息错误,跳转到failLogin.jsp页面
} else {
mav.setViewName("failLogin");
return mav;
}
}
@RequestMapping(value = "/improve")
public void improve(){
JOptionPane.showMessageDialog(null, "姓名为必填项!", "提示",JOptionPane.ERROR_MESSAGE);
}
//通过点击improve.jsp页面的提交按钮触发
@RequestMapping(value = "/improveInfo")
public String improveInfo(Student student){
//获取系统时间作为update_at
java.util.Date dt = new Date();
// System.out.println(dt.toString());
student.setUpdate_at(dt.getTime());
//我设置姓名为基础信息必须填,所以首先判断姓名是否已填,如果未填则跳到/improve(原本打算是输出弹窗,但现在不会,所以现在的效果是没填写姓名则页面不跳转)
if (student.getName().equals("")){return "redirect:/improve";}
//如果已填写姓名则将页面上的数据取下来(传参进行update操作)
else {
studentService.updateStudent(student);
//但初次登录并完善信息后我要将登录表里的info_ed字段修改为1,代表我已经完善信息,下次登录就不进入完善信息页面了)
//我先根据此用户的ID作为他的info_id.取到此用户登录信息,然后update info_ed
LoginInfo loginInfo = studentService.selectLoginInfoByInfo_id(student.getID());
loginInfo.setInfo_ed(1);
studentService.updateLoginInfo(loginInfo);
return "redirect:/listStudent";
}
}
//这个是登录成功之后触发,向页面展示所有用户信息.
@RequestMapping(value = "/listStudent")
//这个涉及分页,暂时不会
public ModelAndView listStudent(Page page){
ModelAndView mav = new ModelAndView();
List<Student> students = studentService.listStudent(page);
int total = students.size();
page.caculateLast(total);
mav.addObject("students", students);
mav.setViewName("listStudent");
return mav;
}
//点击listStudent.jsp页面的添加按钮触发,跳转到addStudent.jsp
@RequestMapping(value = "/addStudent" )
public String addStudent(){
return "addStudent";
}
//点击addStudent.jsp页面提交按钮触发
@RequestMapping(value = "/addStudentIn" ,method = RequestMethod.POST)
public String addStudentIn(Student student,LoginInfo loginInfo){
//增加学生首先获取系统信息作为create_at.update_at
java.util.Date dt = new Date();
// System.out.println(dt.toString());
long create_at = dt.getTime();
student.setCreate_at(create_at);
student.setUpdate_at(create_at);
//我设置姓名,用户名,密码,权限必须填,所以首先判断是否未填(未填和null是有区别的,未填是""空字符串)
if (student.getName().equals("")){
return "emptyNUPL";}
else if(loginInfo.getInfo_user().equals("")){return "emptyNUPL";}
else if(loginInfo.getInfo_password().equals("")){return "emptyNUPL";}
else if(loginInfo.getInfo_level().equals("")){return "emptyNUPL";}
//判断必填项全部填写之后,进行以下操作
else {
//首先增加学生你要保证基本信息和登录信息同时添加
studentService.insertStudent(student);
//我先插入学生基本信息,然后根据学生的create_at将这个学生查出来,然后在将查出了的学生取出他的ID同步到登录信息表里
loginInfo.setInfo_ed(0);
Student student1=studentService.selectStudentByCreate_at(student.getCreate_at());
loginInfo.setInfo_id(student1.getID());
studentService.insertLoginInfo(loginInfo);
return "redirect:/listStudent";
}
}
//点击listStudent.jsp里删除触发
@RequestMapping(value = "/deleteStudent")
public String deleteStudent(Student student){
studentService.deleteStudent(student);
studentService.deleteLoginInfoByInfo_id(student.getID());
return "redirect:/listStudent";
}
//点击listStudent.jsp页面的编辑按钮触发
@RequestMapping(value = "/updateStudent")
public ModelAndView updateStudent(Student student){
//编辑我必须将这个学生的信息作为model传到updateStudent.jsp页面上,要不然他无法判断到底改的是谁的信息
ModelAndView mav=new ModelAndView();
Student student1=studentService.selectStudentByID(student.getID());
mav.addObject("student1",student1);
mav.setViewName("updateStudent");
return mav;
}
//点击updateStudent.jsp页面的提交触发
@RequestMapping(value = "/updateStudentIn")
public String updateStudentIn(Student student){
//我编辑一次就要更新一次他的更新时间.基本信息的update_at字段
java.util.Date dt = new Date();
// System.out.println(dt.toString());
long update_at = dt.getTime();
student.setUpdate_at(update_at);
//然后将页面上传回来的信息update
studentService.updateStudent(student);
return "redirect:/listStudent";
}
//点击listStudent.jsp上查询按钮触发
@RequestMapping(value = "/selectStudent")
public ModelAndView selectStudent(Student student){
ModelAndView mav = new ModelAndView();
//我设置的一个表单.模糊查询.
String name=student.getName();
//首先判断是否未填写
if (name.equals("")==false){
//如果填写了,到数据库模糊查询数据展示出来;
List<Student> students=studentService.listStudentByName(name);
mav.addObject("students", students);
mav.setViewName("listStudent");
return mav;
}
else{
//如果未填,则显示全部信息
mav.setViewName("redirect:/listStudent");
return mav;
}
}
//点击右上角的注销或退出生效
@RequestMapping(value = "/quitLogin")
public String quitLogin(){
return "index";
}
}
明天计划完成的事情:明天把任务二交了吧.
遇到的问题:暂无.
收获:对整体有了理解
评论