0

我正在尝试编写一个可以处理动态 URL 的控制器

这是控制器:

@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.错误。我究竟做错了什么?

4

1 回答 1

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 ) {
}

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

于 2013-10-28T11:37:54.207 回答