spring mvc url格式化

时间:2012-01-24 06:53:08

标签: java spring-mvc

我正在使用spring mvc。我的网站有3个页面(实际上控制器处理这些请求):

localhost/post.html
localhost/search.html
localhost/list.html

我希望网址为localhost/XXX/post.html,其中XXX是一个参数,它将作为参数传输到控制器方法。例如,如果用户询问localhost/bla/post.html,那么/post的控制器方法将获得bla作为参数。

春天mvc有可能吗?

3 个答案:

答案 0 :(得分:1)

是的,很容易做到。定义处理程序URL的映射时,可以将变量放入路径中,如下所示:

@RequestMapping("/{blah}/post.html")
public ModelAndView handleRequest(@PathVariable("blah") String blah) {
  //
}

Spring会在调用方法时为你设置String的值。

(虽然不是绝对必要,但在路径中有一个调度程序servlet的子目录也是正常的。将调度程序映射到根目录可能很麻烦。例如,静态资源访问。例如,localhost / myapp /blah/post.html)

答案 1 :(得分:0)

在JSF中,可以使用PrettyFaces library完成。可能会帮助你。

答案 2 :(得分:0)

使用注释可以轻松完成:

@Controller
public class MyController
{   

    @RequestMapping(value = "/{id}/post", method = RequestMethod.POST)
    public String post(@PathVariable("id") String id)
    {
    }

    @RequestMapping(value = "/{id}/search", method = RequestMethod.GET)
    public String search(@PathVariable("id") String id)
    {
    }

    @RequestMapping(value = "/{id}/list", method = RequestMethod.GET)
    public String list(@PathVariable("id") String id)
    {
    }

}