发表于: 2017-10-12 23:48:25

1 674


今天完成的事情:今天还是在做那个项目,完善了一下.

没什么好说的,直接把我页面和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";
   }

}

明天计划完成的事情:明天把任务二交了吧.

遇到的问题:暂无.

收获:对整体有了理解



返回列表 返回列表
评论

    分享到