我正在开发一个Spring mvc应用程序,我必须在其中显示一个位置列表。我有一个位置的控制器方法。以下是我的控制器方法代码:
@RequestMapping("/location")
public class LocationController {
@RequestMapping(value = "/home")
public String showAllLocations(ModelMap modelMap) {
logger.info("showAllLocations() begins:");
try {
List<LocationModel> locationList = locationService
.getAllLocations("");
modelMap.addAttribute("locationlist", locationList);
} catch (Exception e) {
logger.debug("Error while getting locations: " + e.getMessage());
e.printStackTrace();
}
return "LocationHome";
}
}
当我使用以下网址时,它可以正常工作:
http://www.example.com:8080/myapp/location/home
但是当我使用http://www.example.com:8080/myapp/location时,它会显示错误。
如何在不使用&#39; home&#39;的情况下查看位置列表,请访问以下网址:
答案 0 :(得分:1)
@RequestMapping(value = "/home")
public String doHome(ModelMap modelMap) {
...
}
@RequestMapping(value = "/**")
public String doDefault(ModelMap modelMap) {
...
}
确保在不具体的请求处理程序之前放置更具体的请求处理程序。
答案 1 :(得分:0)
@RequestMapping(value =“/”,method = {RequestMethod.GET,RequestMethod.POST}) 这可以将您映射到默认处理程序。
答案 2 :(得分:0)
此处有LocationController
的请求映射,
@RequestMapping("/location")
public class LocationController {..}
因此,此控制器截获的所有URL都应具有模式/location
,后跟方法请求映射,如此处所示
@RequestMapping(value = "/home")
public String showAllLocations(ModelMap modelMap) {..}
如果您需要拦截request
的{{1}}。只需从控制器中删除url映射并将其分配给方法。