我在jsp页面中声明了一个简单的变量
<html>
<body>
<c:set var="vehicle" scope="request" value="Car" />
<td><a href="<%=request.getContextPath()%>/productsHome/vehicles">Cars</a></td>
</body>
</html>
我试图访问变量的车辆,其值为&#34; Car&#34;在我的Spring控制器中
@RequestMapping(value = "/vehicles", method = RequestMethod.GET)
public ModelAndView viewLaptops(@RequestParam(value = "vehicle", required = false) String vehicleType) {
if (vehicleType.equals("Car")) {
// retrieve car list, return the model for car list
}
else if (vehicleType.equals("Truck")) {
// retrieve truck list, return the model for truck list
}
System.out.println(carType);
}
但我得到一个空值。我怎样才能实现这一目标?谢谢你的帮助。
答案 0 :(得分:0)
尝试按如下方式更新生成的网址:
<c:set var="vehiculeURL">
<c:url value="productsHome/vehicles">
<c:param name="vehicle" value="Car"/>
</c:url>
</set>
<a href="${vehiculeURL}">Car</a>
答案 1 :(得分:0)
要从spring控制器将值传递给.jsp,可以使用Model参数来运行:
@RequestMapping(value = "/vehicles", method = RequestMethod.GET)
public String viewLaptops(Model model, ...) {
model.addAttribute("Car", "Toyota");
return "index.jsp"; //path to your file
}
通过使用以下语法,您将在jsp中使用键“Car”获得值“Toyota”:
<div>${Car}</div>
答案 2 :(得分:0)
我设法解决了我想要发生的一切,使用@PathVariable,我能够在单个控制器中映射多个url请求,假设我有3个href
<td><a href="<%=request.getContextPath()%>/productsHome/vehicles/Car">Cars</a></td>
<td><a href="<%=request.getContextPath()%>/productsHome/vehicles/Truck">Trucks</a></td>
<td><a href="<%=request.getContextPath()%>/productsHome/vehicles/Bike">Bike</a></td>
我在我的控制器类中添加了另一个 handler-method ,它将支持我使用 / vehicle
的默认映射@RequestMapping(value = "/vehicles", method = RequestMethod.GET)
public ModelAndView viewVehicles() {
ModelAndView mv = new ModelAndView();
mv.setViewName("vehiclesPage");
return mv;
}
@RequestMapping(value = "/vechicles/{type}", method = RequestMethod.GET)
public ModelAndView viewDifferentVehicles(@PathVariable("type") String type) {
ModelAndView mv = new ModelAndView();
if(type.equals("Car") {
mv.setViewName("cars"); // cars.jsp
}
else if (type.equals("Truck") {
mv.setViewName("trucks"); // trucks.jsp
}
else if (type.equals("Bike") {
mv.setViewName("bikes"); //bikes.jsp
}
return mv;
}
这正是我想要发生的事情,映射不同的请求并在单个处理程序方法中返回所需的视图,我认为访问带有一些if-else结构的JSP变量将解决我的问题,只是一些随机的运气我偶然发现的 @PathVariable 强>