我们有一个Spring MVC webapp,我们的产品URL结构需要SEO友好。例如www.mydomain.com/ {productname}。每次我们向库存添加产品时,我们都希望使用URL来显示这些产品详细信息。
我们无法确定如何使用Spring Controller Resource路径生成动态URL。
有人可以帮助我们吗。
非常感谢您的帮助。
由于 拉吉
答案 0 :(得分:1)
像www.mydomain.com/ {productname}这样的Spring URL结构似乎意味着'productname'始终是唯一的。如果是这样,每个产品都可能有一个名为“name”或“productname”的属性;此属性可用于检索控制器方法中的相关产品。这只有在每个'productname'都是唯一的时才有效。
答案 1 :(得分:1)
您要找的是URI Template Patterns。在Spring MVC中,@PathVariable
注释用于将参数绑定到URI模板变量的值。
@RequestMapping(path="/{productname}", method=RequestMethod.GET)
public String findProduct(@PathVariable String productname, Model model) {
List<Product> product = productService.findProductsByName(productname);
model.addAttribute("product", product);
return "displayProduct";
}
请注意,服务电话会返回List<Product>
而不是Product
,因为理想情况下,产品名称并非一个项目唯一。如果您希望URI仅识别一个产品,请确保产品名称仅对一个产品是唯一的。