RequestMapping资源不可用

时间:2013-10-28 06:41:25

标签: spring spring-mvc

我尝试编写可以处理动态网址的控制器

这是控制器:

@RequestMapping( value = "/*/module/{file_id}" )
public String getModule( @PathVariable( "file_id" )
int fileId, Model model )
{
    return "redirect:../*/module/" + fileId;
}

链接:

<a href="../module/${ file_id }" >Spring Tutorial</a>

它产生404: The requested resource is not available.错误。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为您不能将星号作为路径占位符传递。我想你想要做的是使用路径变量,如下所示:

@RequestMapping( value = "/{prePath}/module/{file_id}" )
public String getModule( @PathVariable( "prePath" ) String prePath, @PathVariable( "file_id" ) int fileId, Model model ) {
}

您还可以将正则表达式传递给路径变量以进一步缩小匹配范围:

@RequestMapping( value = "/{prePath:[a-zA-Z]+}/module/{file_id}" )
public String getModule( @PathVariable( "prePath" ) String prePath, @PathVariable( "file_id" ) int fileId, Model model ) {
}

在我看来,这是一个很好的做法。