我正在寻找一种方法,使复杂的URL映射将取决于数据库的内容。例如,我显示了两个URL映射:
/{category}/
/{category}/{slug}/{id}例如,类别可以是:
apples, pears, lemons -> resolve to FruitListController,
beans, onions, potatoes -> resolve to VegetableListController.如果我有另外的段塞和id,如果它们存在的话,必须对照数据库检查它们。
我是否可以以某种方式编写某种“类别处理程序”,以返回相应的类别和相关控制器?
显然,这是翻译URL ->请求的一个问题。另外,是否有一种方法可以以类似的方式向后生成请求-> URL?我想在模板中找到这样的东西:
<c:foreach="apples as apple"
<a href="${link AppleController:defaultView, ID = apple.id}">${apple.name}</a>
</c:foreach>发布于 2012-02-08 23:30:35
使用WebArgumentResolvers。他们可以访问WebRequest来查看你的网址。解析器可以执行数据库查找。FruitWebArgumentResolver可以返回一个水果或返回未解决的。VegetableArgumentResolver可以返回蔬菜或返回未解决的。参数解析后,处理程序适配器可以映射到以特定类型作为参数的RequestMapping。例如,
@RequestMapping("/{catagory}/{slug}")
public void fruitSlugList(Fruit fruit, @PathVariable("slug") String slug){要查看这方面的示例,我在这里有一篇使用相同类型机制的博客文章:http://www.adamweigold.com/2012/01/using-multpartrequestresolvers-with.html
https://stackoverflow.com/questions/9202888
复制相似问题