我正在使用spring mvc。我的网站有3个页面(实际上控制器处理这些请求):
localhost/post.html
localhost/search.html
localhost/list.html
我希望网址为localhost/XXX/post.html
,其中XXX
是一个参数,它将作为参数传输到控制器方法。例如,如果用户询问localhost/bla/post.html
,那么/post
的控制器方法将获得bla
作为参数。
春天mvc有可能吗?
答案 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)
{
}
}