Spring Mvc中带有哈希的URL

时间:2014-04-24 11:41:35

标签: spring-mvc

大家。

我正在使用Spring MVC 4.我的应用程序将激活URL发送到用户的电子邮件。

激活网址:

www.example.com:8080/myapp/user/activate/$2a$10$Ax2WL93zU3mqjtdxuYlYvuWWyQsPBhkhIfzYHJYk4rdNlAY8qCyC6

但是,我的App无法找到路径。

我的控制器:

@RequestMapping(value = "/user/activate/{hash})
public void activateUser(@PathVariable("hash") String hash) {
    userService.activate(hash);
}

我做错了什么?

更新

我发现如果hash包含点(“。”),则抛出404错误。

我改变了我的网址:

www.example.com:8080/myapp/user/activate?code=$2a$10$Ax2WL93zU3mqjtdxuYlYvuWWyQsPBhkhIfzYHJYk4rdNlAY8qCyC6

和我的控制员:

@RequestMapping(value = "/user/activate)
public void activateUser(@RequestParam("code") String hash) {
    userService.activate(hash);
}

效果很好。

2 个答案:

答案 0 :(得分:3)

您没有从控制器返回任何内容,因此收到404

答案 1 :(得分:0)

如果路径变量值中有点(。),则必须在RequestMapping中明确声明它,如下所示 -

@RequestMapping(value = "/download/{attachmentUri:.+}", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<InputStreamResource> downloadAttachment(@PathVariable("attachmentUri") String attachmentUri,
                                                              HttpServletResponse response,
                                                              WebRequest webRequest) {

}