今天在学习SpringMVC的时候使用requestMapping访问相关文件出现404问题,相关代码处的代码如下:
@RequestMapping("/role")
public class RoleController {
@Resource(name = "roleService")
private RoleService roleService;
@RequestMapping("/list")
public ModelAndView list(){
ModelAndView modelAndView = new ModelAndView();
List<Role> roleList = roleService.showList();
modelAndView.addObject("roleList", roleList);
modelAndView.setViewName("/pages/role-list.jsp");
return modelAndView;
}
}
按照上面代码的显示,访问路径应该为 xxx(项目路径)/role/list,但是访问此路径会出现404错误。
原因在于因为采用了注解开发,springMVC在扫描类似于@Controller、@Service、@Repository、@Component时会生成相应的Bean,在编写Service和Dao层时已经配置了@Service、@Repository注解,但是在Controller层忘了加相关注解,导致springMVC没有生成相应的bean,在访问 xxx(项目路径)/role/list时按照普通jsp页面的请求路径去找资源,多以自然会出现404错误啦!!!!
修改代码如下:
@Controller
@RequestMapping("/role")
public class RoleController {
@Resource(name = "roleService")
private RoleService roleService;
@RequestMapping("/list")
public ModelAndView list(){
ModelAndView modelAndView = new ModelAndView();
List<Role> roleList = roleService.showList();
modelAndView.addObject("roleList", roleList);
modelAndView.setViewName("/pages/role-list.jsp");
return modelAndView;
}
}