求教会springmvc的大神 org.springframework.web.servlet.DispatcherServlet noHandlerFound

longlaile2016 2013-06-06 10:03:01
本人用springmvc开发遇到了一个问题,用google和百度都搜不到与自己问题一致的答案。将问题贴出来求助各位路人大神。
web.xml主要的配置
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>

applicationContext-mvc.xml主要的配置
<mvc:annotation-driven />

<context:component-scan base-package="com.*.*.web.controller" />

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp" />
<property name="suffix" value=".jsp" />
</bean>

<bean id="handlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

</beans>

这是我的项目目录(由于上传不了图只好用文字描述下):
forklift(项目名)
com.bb.demo.dao(包名)
BookDao.java
ForkliftInfoDao.java
com.bb.demo.dao.impl
BookImpl.java
ForkliftInfoDaoImpl.java
com.bb.demo.model
book.java
ForkliftInfo.java
com.bb.demo.web.controller
BookController.java
ForkliftInfoController.java


然后是book和forkliftInfo的代码几乎是一样的,可是访问页面的时候book的增删改查都没有问题,forkliftInfo访问就出现:org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/cc/forkliftInfo/forkInlist.do] in DispatcherServlet with name 'springmvc'

我发现服务器启动的时候book的add,list,delete,update加载了两次(如下所示),而forkliftInfo访问就出现上面的问题
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/add],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.bb.demo.web.controller.BookController.add(com.bb.demo.model.Book)
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/list],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.util.Map<java.lang.String, java.lang.Object> com.bb.demo.web.controller.BookController.list(int,int)
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/delete],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.bb.demo.web.controller.BookController.delete(int[])
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/update],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.bb.demo.web.controller.BookController.update(com.bb.demo.model.Book)
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/add],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.bb.demo.web.controller.BookController.add(com.bb.demo.model.Book)
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/list],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.util.Map<java.lang.String, java.lang.Object> com.bb.demo.web.controller.BookController.list(int,int)
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/delete],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.bb.demo.web.controller.BookController.delete(int[])
org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/book/update],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String com.bb.demo.web.controller.BookController.update(com.bb.demo.model.Book)

最后,我的访问方式是基于注解的方式,下面是bookController.java的部分代码
@Controller("bookController")
public class BookController extends BaseController {
// 书籍实体
private BookDao bookDao;: String
@RequestMapping(value = "/book/add", method = RequestMethod.POST)
public @ResponseBody
String add(Book book) {
if(book!=null){
bookDao.save(book);
return "true";
}else{
return "false";
}

}
@RequestMapping(value = "/book/list", method = RequestMethod.GET)
public @ResponseBody
Map<String, Object> list(int start, int limit) {
List<Book> list = bookDao.load(start, limit);
long count = bookDao.getCount();
Map<String, Object> map = new HashMap<String, Object>();
map.put("list", list);
map.put("count", count);
return map;
}
@RequestMapping(value = "/book/delete", method = RequestMethod.GET)
public @ResponseBody
String delete(int[] id) {
bookDao.batchDel(id);
return "true";
}

问题描述的有点长,希望能有人遇到过和我一样的问题,求解释啊。。。
...全文
8189 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_32872907 2016-01-04
  • 打赏
  • 举报
回复
你可以选择方法1或者方法2。 我看了你的代码中使用的是方法2,但是方法1的<!--注解映射器 -->也还在使用,建议你可以注释掉<!--注解映射器 -->完全使用方法2看看。 方法1: <!--注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!--注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> 方法2: <!-- 使用 mvc:annotation-driven代替上边注解映射器和注解适配器配置 mvc:annotation-driven默认加载很多的参数绑定方法, 比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的RequestMappingHandlerMapping和RequestMappingHandlerAdapter 实际开发时使用mvc:annotation-driven --> <mvc:annotation-driven></mvc:annotation-driven>
什么不重名 2016-01-03
  • 打赏
  • 举报
回复
是啊我也遇到这种问题求分享啊
baidu_28703263 2015-06-03
  • 打赏
  • 举报
回复
#7多年,不是多时#7
陈科肇 2015-05-29
  • 打赏
  • 举报
回复
楼主解决了吗?我也是遇到这个问题。求解中!!!!!!!!!!!! 不过发现这个帖子已过去多时。
longlaile2016 2013-06-06
  • 打赏
  • 举报
回复
@xiuxiu2by 这个是forkliftInfo的controller的mapping。 @Controller("forkliftInfoController") public class ForkliftInfoController extends BaseController { // 书籍实体 private ForkliftInfoDao forkliftInfoDao; /** * @description:添加forkliftInfo * @param forkliftInfo * @returnType: String */ @RequestMapping(value = "/forkliftInfo/add", method = RequestMethod.POST) public @ResponseBody String add(ForkliftInfo forkliftInfo) { if(forkliftInfo!=null){ forkliftInfoDao.save(forkliftInfo); return "true"; }else{ return "false"; } } /** * @description:分页查询forkliftInfo * @param start 起始位置 * @param limit 检索数目 * @returnType: Map<String,Object> */ @RequestMapping(value = "/forkliftInfo/list", method = RequestMethod.GET) public @ResponseBody Map<String, Object> list(int start, int limit) { List<ForkliftInfo> list = forkliftInfoDao.load(start, limit); long count = forkliftInfoDao.getCount(); Map<String, Object> map = new HashMap<String, Object>(); map.put("list", list); map.put("count", count); return map; } /** * @description:删除forkliftInfo * @param id 主键数组 * @returnType: String */ @RequestMapping(value = "/forkliftInfo/delete", method = RequestMethod.GET) public @ResponseBody String delete(int[] id) { forkliftInfoDao.batchDel(id); return "true"; } /** * @description:更新forkliftInfo * @param forkliftInfo * @returnType: void */ @RequestMapping(value = "/forkliftInfo/update", method = RequestMethod.POST) public @ResponseBody String update(ForkliftInfo forkliftInfo){ if(forkliftInfo!=null){ forkliftInfoDao.update(forkliftInfo); return "true"; }else{ return "false"; } }
抱抱枯叶 2013-06-06
  • 打赏
  • 举报
回复
/cc/forkliftInfo/forkInlist.do 和你注解的requestmapping比比看
longlaile2016 2013-06-06
  • 打赏
  • 举报
回复
楼上两位说的有道理,可是我book和forkliftInfo代码基本一样,而且都放在同一包下,为什么book可以访问,而forkliftInfo不行,按照百度和google的方法改配置文件也没有用,问题依然在,我试过直接把这个<context:component-scan base-package="com.*.*.web.controller" />改成具体的包路径,也不行。想问问你们知道其他的有可能出现的问题不
  • 打赏
  • 举报
回复
一定是有些地方路径没有对应上,检查配置文件
-AJ- 2013-06-06
  • 打赏
  • 举报
回复
<context:component-scan base-package="com.*.*.web.controller" /> 你把base-package路径改一下。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧