映射到控制器方法不起作用。转到http://localhost:8080/teleseminars/telesem_live
会返回404,这会显示在日志中:
2012-10-30 11:37:58,190 [http-8086-1] [警告] [org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:947)] 没有找到带有URI的HTTP请求的映射 DispatcherServlet中的[/ teleseminars / telesem_live]名称 '调度'
感谢任何帮助。谢谢!
这是控制器:
@Controller
public class TeleseminarsController {
private final Logger logger = LoggerFactory.getLogger(getClass());
@RequestMapping(value= "/teleseminars/{page}/{series}", method = RequestMethod.GET) ///{page}/{series}
public String getTele(@PathVariable("page") String page,
@PathVariable("series") String series,
HttpServletRequest request,
final Model model) {
//do stuff
return page;
}
}
我在web.xml上有这个
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
<url-pattern>/teleseminars/*</url-pattern>
</servlet-mapping>
答案 0 :(得分:2)
servlet-mapping
你吃了那一部分。在您的控制器中,您可能需要将@RequestMapping
更改为@RequestMapping(value= "/{page}/{series}", method = RequestMethod.GET)
。我也有这个问题。
答案 1 :(得分:0)
您正在映射两个路径变量,因此http://localhost:8080/teleseminars/telesem_live/foo
会匹配,但http://localhost:8080/teleseminars/telesem_live
不匹配。
答案 2 :(得分:0)
请您确保context.xml中有以下行
<context:component-scan base-package="com.yourapp.controller" />
在Spring 3或更高版本中,你仍然需要启用“自动组件扫描”(对于控制器)并手动声明“查看解析器”。我以前也遇到过这个问题。