Springmvc跳转controller无效
在实际搭建Springmvc工程,通过controller进行业务处理和逻辑跳转,经常发现接口URL拼写正确但是访问不到控制层,这里 给出两点说明,可供排查:
1、springmvc-servlet.xml
(只说明controller其他配置自行添加),在配置文件中添加
1
2
|
<!-- 自动扫描包,实现支持注解的IOC --> < context:component-scan base-package = "com.bj58.automation.controller" /> //路径基于实际需求添加 |
2、web.xml,在改配置文件中将
1
2
3
4
|
< servlet-mapping > < servlet-name >springmvc</ servlet-name > < url-pattern >*.do</ url-pattern > </ servlet-mapping > |
修改成
1
2
3
4
|
< servlet-mapping > < servlet-name >springmvc</ servlet-name > < url-pattern >/</ url-pattern > </ servlet-mapping > |
controller格式如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
@Controller @RequestMapping ( "/task" ) public class TaskController { @Autowired InsertTask insertTask; //注入添加任务接口 @RequestMapping (value= "/insertTask" ) public void insertTask( @RequestParam ( "productId" ) int productId, @RequestParam ( "taskname" ) String taskname, HttpServletRequest request,Model model) { insertTask.insertTaskService(productId, taskname); } @ResponseBody @RequestMapping (value= "/demo" ,method=RequestMethod.GET) public String name() { System.err.println( "demo123" ); return "demo" ; } |
接口访问路径格式如下:http://localhost:8080/task/demo
springmvc无法进入controller、后台也不报错
说说解决思路
1、检查是否配置
处理器映射器、处理器适配器
1
|
< mvc:annotation-driven /> |
2、是否配置
扫描 controller包
1
|
< context:component-scan base-package = "cn.ssm.controller" /> |
3、controller类是否加上
@contaoller注解
1
2
3
4
5
6
7
8
9
10
11
12
|
@Controller public class ItemController { @Autowired private ItemService itemService; @RequestMapping ( "/item/{itemId}" ) @ResponseBody public TbItem getItemById( @PathVariable Long itemId) { System.err.println( 123 ); TbItem tbItem = itemService.getItemById(itemId); return tbItem; } } |
4、视图解析器
是否配置正确
1
2
3
4
5
|
< bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver" > < property name = "prefix" value = "/WEB-INF/jsp/" /> < property name = "suffix" value = ".jsp" /> </ bean > |
5、web.xml文件是否配置
springmvc文件启动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!-- springmvc的前端控制器 --> < servlet > < servlet-name >springmvc</ servlet-name > < servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class > <!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" --> < init-param > < param-name >contextConfigLocation</ param-name > < param-value >classpath:spring/springmvc.xml</ param-value > </ init-param > < load-on-startup >1</ load-on-startup > </ servlet > < servlet-mapping > < servlet-name >springmvc</ servlet-name > < url-pattern >/</ url-pattern > </ servlet-mapping > |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/zw1_csdn/article/details/89517259