Controller路径的问题RequestMapping(“/...“)导致获取不到页面传递给后台的数据

当RequestMapping路径与页面名称相同,如detail.html,会导致页面跳转失败,直接进入数据传递的Controller。解决方法为修改@RequestMapping的路径。

记录一个error
RequestMapping路径和一个页面的名称(detail.html)设置成一样的时候,导致根本没有跳转页面!而是直接跳到了传递数据的Controller

跳转页面的Controller
在这里插入图片描述

传递数据的Controller
在这里插入图片描述
已解决:将RequestMapping(“/…“)的路径更改!!!

package rs3.sdbi.hr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import rs3.sdbi.hr.domain.entity.User; import rs3.sdbi.hr.mapper.UserMapper; import rs3.sdbi.hr.service.UserService; import java.util.List; @Controller public class UserConroller { @Autowired private UserMapper userMapper; @Autowired private UserService userService; //业务层对象 //查询所有 @RequestMapping("/all") @ResponseBody public List<User> selectAll(){ return userMapper.selectAllusers();//对象名.方法名() } //跳转到add.jsp页面 @RequestMapping("/add") public String gotoadd(){ return "add"; // 程序会运行到 /WEB-INF/add.jsp } @RequestMapping("/adduser") public String add(User user){ System.out.println("你要添加的用户的信息:"+user.getUsername()+"\t"+user.getName()+"\t"+user.getPassword()); //直接调用后台的添加方法 userService.insert(user); //转发 return "forward:/selectallusers2";//forward:转发的JSP路径,转发到selectallusers2,查询所有的 } @RequestMapping("/index") public String index(){ return "login"; } @RequestMapping("/login") public String login(String username,String password){ User user=userService.selectUser(username,password); //根据用户名和密码查询用户 if(user!=null){ return "wel"; } else{ return "error"; } } //查询所有的用户 @RequestMapping("/selectallusers") @ResponseBody public List<User> selectusers(){ return userService.selectUsers(); //调用业务层的查询方法 } @RequestMapping("/selectallusers2") public ModelAndView selectusers2(){ List<User> users = userService.selectUsers();//调用业务层的查询方法 ModelAndView mv=new ModelAndView(); //设置传递的值 mv.addObject("myusers",users); //设置要转向的页面 mv.setViewName("list"); return mv; } } 改成【分值】2分 【要求】能够提供用户登录功能,并记录用户登录信息。 【考核方式】 1. 通过POST请求http://ip:port/user/login进行登录,使用form表单数据进行传参。参数为username、password,分别代表用户名、密码。使用数据库user表完成认证,用户名密码正确可以登录成功,其他用户名密码登录失败。(2分) 登录成功返回值格式如下: { "code": 200, "msg": "成功" } 登录失败返回值格式如下: { "code": 401, "msg": "用户名或密码错误" }
06-25
package com.itheima.controller; @Controller // 设置session中的属性名UserSession,这样model设置该属性,就可以从Session中获取了。 @SessionAttributes(value={“UserSession”}) public class UserController { @Autowired UserService userService; @Autowired Result result; // 用户登录,后台验证转向 @RequestMapping("/Login") public String login(Model model, User user) { // 根据提交的用户名和密码,查询数据库 User user1 = userService.selectUser(user.getUsername(), user.getPassword()); if (user1 != null) { // 数据库中存在该用户 model.addAttribute("UserSession", user1); // 设置session return "redirect:/domain"; // 登录成功转向后台页面 } else { model.addAttribute("loginmsg", "登录失败,请检查用户名和密码"); return "forward:index.jsp"; // 登录错误转向登录页面 } } // 转向后台页面 @RequestMapping("/tomain") public String tomain() { return "main"; } // 用户退出 @RequestMapping("/toLogout") public String toLogout(HttpSession session, SessionStatus status) { // 清除session信息 session.invalidate(); status.setComplete(); return "forward:/index.jsp"; // 转向登录页面 } // 用户列表 @RequestMapping("/userList") // @ModelAttribute注解接收redirect转向过来的数据,将ModelAndView中的数据添加到msg中 public ModelAndView userList(@ModelAttribute(“msg”) String msg) throws UnsupportedEncodingException { msg = URLDecoder.decode(msg, “utf-8”); // msg解码 List userList = userService.selectUsers(); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("msg", msg); modelAndView.addObject("userList", userList); modelAndView.setViewName("userList"); return modelAndView; } // 删除用户,JSON提交删除 @RequestMapping("/deleteUser") @ResponseBody public Result deleteUser(@RequestBody User user) { int userId = user.getId(); int num = userService.deleteUserById(userId); if (num > 0) { result.setResult(true); result.setMessage("数据删除成功"); } else { result.setResult(false); result.setMessage("数据删除失败"); } return result; } // 添加用户界面 @RequestMapping("/toAddUser") public String toAddUser() { return "adduser"; } // 添加用户 @RequestMapping("/addUser") public ModelAndView addUser(User user) throws UnsupportedEncodingException { ModelAndView modelAndView = new ModelAndView(); int num = 0; String msg = "用户添加成功"; try { num = userService.addUser(user); } catch (Exception ex) { ex.printStackTrace(); } if (num > 0) { msg = URLEncoder.encode(msg, "utf-8"); modelAndView.addObject("msg", msg); // 将msg加入到modelAndView中,redirect转向时传递到转向页面。 modelAndView.setViewName("redirect:/userList"); } else { msg = "用户添加失败!"; modelAndView.addObject("msg", msg); modelAndView.setViewName("forward:/toAddUser"); } return modelAndView; } // 打开修改用户页面 @RequestMapping("/toModifyUser") @ResponseBody public ModelAndView toModifyUser(int id) { User user = userService.findUserById(id); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("user", user); modelAndView.setViewName("modifyuser"); return modelAndView; } // 修改用户信息 @RequestMapping("/ModifyUser") @ResponseBody public ModelAndView ModifyUser(User user) throws UnsupportedEncodingException { int num = 0; try { num = userService.updateUser(user); } catch (Exception ex) { ex.printStackTrace(); } String msg = "用户修改成功"; ModelAndView modelAndView = new ModelAndView(); if (num > 0) { msg = URLEncoder.encode(msg, "utf-8"); modelAndView.addObject("msg", msg); // 将msg加入到modelAndView中,redirect转向时传递到转向页面。 modelAndView.setViewName("redirect:/userList"); } else { msg = "用户修改失败!"; modelAndView.addObject("msg", msg); modelAndView.setViewName("forward:/toModifyUser"); } return modelAndView; } } 检查以上代码是否有错误,指出有哪些错误并给出修改后的代码
最新发布
11-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值