0

映射到控制器方法不起作用。将http://localhost:8080/teleseminars/telesem_live返回 404,这会显示在日志中:

2012-10-30 11:37:58,190 [http-8086-1] [WARN] [org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:947)] 找不到带有 URI 的 HTTP 请求的映射 [/ Teleseminars/telesem_live] 在 DispatcherServlet 中,名称为“dispatcher”

任何帮助表示赞赏。谢谢!

这是控制器:

@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>
4

3 回答 3

2

servlet-mapping你吃了它的那一部分。在您的控制器中,您可能需要@RequestMapping@RequestMapping(value= "/{page}/{series}", method = RequestMethod.GET). 我也遇到过这个问题。

于 2012-10-30T22:15:36.743 回答
0

您能否确保您的 context.xml 中有以下行

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

在 Spring 3 或更高版本中,您仍然需要启用“自动组件扫描”(用于控制器)并手动声明“视图解析器”。我前段时间也遇到过这个问题。

于 2012-10-30T21:54:56.537 回答
0

您正在映射两个路径变量,因此http://localhost:8080/teleseminars/telesem_live/foo会匹配,但http://localhost:8080/teleseminars/telesem_live不匹配。

于 2012-10-30T20:04:05.993 回答