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