Spring调度程序url模式无法正常工作

时间:2012-10-30 19:37:31

标签: java spring servlets spring-mvc

映射到控制器方法不起作用。转到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>

3 个答案:

答案 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或更高版本中,你仍然需要启用“自动组件扫描”(对于控制器)并手动声明“查看解析器”。我以前也遇到过这个问题。

相关问题