我的请求网址,我从中访问控制器
<li><a href="brands.htm/nokia">Nokia </a></li>
<li><a href="brands.htm/apple">Apple </a></li>
控制器
---------------
@Controller
@RequestMapping(value= "/brands.htm")
public class ShowBrandsProducts {
@Autowired
private ECommerceService service;
@RequestMapping(method=RequestMethod.GET)
public String getPage() {
return "shop_brand";
}
@RequestMapping("{id}")
public String getNokia(@PathVariable("id") String brandName, Model model) {
List<DisplayFeatureProducts> displayList= null;
List<FeaturedItemsObject> listFeature= new ArrayList<>();
ByteToImage big= null;
try {
//getting all nokia products
displayList= service.getProductFromBrand(brandName);
.....
......
model.addAttribute("brand", listFeature);
return "shop_brand";
}
在请求时显示请求资源不可用
由于 /brands.htm 被声明为另一个控制器加载默认产品页面,其中将显示许多品牌。
因此,当用户点击特定品牌时,应该浏览 brands / nokia 并加载数据
答案 0 :(得分:1)
由于我无法评论,我会写一个答案。您是否尝试将@RequestMapping(value =“/ brands.htm”)更改为@RequestMapping(value =“/ brands.htm /”),添加最后一个斜杠可能有效。
此外,是否认为brands.htm和brands.htm / nokia都应返回同一页面(shop_brand)?
答案 1 :(得分:-1)
实现所需功能的一种方法是将品牌作为URL参数传递。例如:
<li><a href="brands.htm?brand=nokia">Nokia </a></li>
<li><a href="brands.htm?brand=apple">Apple </a></li>
然后在处理 /brands.htm 的控制器/方法中使用该参数的值,以便返回适用的页面内容。