2010-02-18 143 views
2

我在Spring框架中使用Java。鉴于以下网址:Spring URL映射问题

www.mydomain.com/contentitem/234 

我需要的是来/contentitem/{numeric value}映射到与“数值”作为参数传递给控制器​​通过给定控制器的所有请求映射。

现在在我的servlet容器的xml我有类似下面的简单映射:

... 
<entry key="/index.html"> 
    <ref bean="homeController" /> 
</entry> 
... 

我只是想知道什么,我需要添加到映射,以达到我的描述?

编辑:我接受的答案暂时因为我似乎无法弄清楚如何做我的web.xml中的映射(我使用的注解如下axtavt的答案描述)。如何在我的<servlet-mapping>中添加适当的<url-pattern>..</url-pattern>,以便正确拾取“/ contentitem/{numeric_value}”的请求?谢谢!

回答

4

它可以通过基于注解的控制器配置进行(见15.3 Implementing Controllers):

@Controller 
public class ContentItemController { 

    @RequestMapping("/contentitem/{id}") 
    public ModelAndView contentItem(@PathVariable("id") int id) { 
     ... 
    } 
} 
+0

Thanks..but我的项目目前正在建立无注释。任何方式,我可以得到解决方案,而不使用注释? – oym 2010-02-18 18:36:53

+2

不可以。没有注释的话,没有办法配置路径变量的提取。 – axtavt 2010-02-18 18:44:32

+0

真的吗?哇,这令我感到惊讶...好吧谢谢你的帮助! – oym 2010-02-18 18:45:52

0

您必须导入org.springframework.stereotype.Controller

1

尝试使用@RequestMapping和@PathVariable

@RequestMapping(value="/contentitem/{value}", method=RequestMethod.GET) 
public String demo(@PathVariable(value="nvalue") String name, ModelMap map) { 

int intValue = Integer.parseInt(nvalue); 

// Do manipulation 

return "something"; // Forward to something.jsp 
} 

关注此Spring MVC Framework Tutorial