2011-05-16 119 views
1

我有一个包含* .html的url-mapping的servlet的spring应用程序。我的注释控制器一切正常。从* .html到SO类型映射的Spring Servlet映射

我的问题是如何设置我的servlet和注释映射来模拟像StackOverflow这样的URL?

我想去一个没有扩展的网址,如果可能的话在最后的/后添加一个描述。

例子:

我目前有:

/appName/parm1/parm2/pageName.html 

我想有

/appName/parm1/parm2/pageName/description 

这是可能的,什么我需要做的,我的注解控制器?

感谢

回答

1

您应该能够调度的servlet映射到/ *或类似的东西,然后用@PathVariables得到从URI所需要的信息。看看http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html并搜索@PathVariable。下面是从页

@RequestMapping(value="/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET) 
public String findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) { 
    Owner owner = ownerService.findOwner(ownerId); 
    Pet pet = owner.getPet(petId); 
    model.addAttribute("pet", pet); 
    return "displayPet"; 
} 

从请求URI读取OWNERID和petId一个例子。

+0

感谢您的回复。我目前有所有的工作。我试图做/ *,并导致一切破裂。我也很感兴趣,你怎么能显示在网址的末尾没有春天试图把它作为视图名称的描述。谢谢 – blong824 2011-05-16 17:20:06

+0

关于/ *问题,我不在一个可以查看我的春季项目的地方,所以我将不得不稍后再看。你应该可以像@ RequestMapping9value =“/ questions/{questionId}/{questionDescription}那样做一个RequestMapping,然后你可以丢弃questionDescription,如果你想使用questionId。 – digitaljoel 2011-05-16 17:24:54