我得到了我不明白的异常。我有一个控制器,它给了我一个新闻对象,它出现在控制台中,所以得到实际的新闻对象不是问题,
@RequestMapping(value ="/viewonestatus/{id}")
public ModelAndView viewOneStatus(@PathVariable("id") Long id) {
System.out.println("!!!!!! STATUSUPDATECONTROLLER: viewOneStatus : Empezamos con el ID del Anuncio: " + id);
StatusUpdate status = statusUpdateService.get(id);
ModelAndView modelAndView = new ModelAndView();
System.out.println("!!!!!! STATUSUPDATECONTROLLER: viewOneStatus : Empezamos con el ID del Anuncio: " + status);
modelAndView.getModel().put("status", status);
modelAndView.setViewName("viewonestatus");
return modelAndView;
}
....但是当尝试执行JSP时,它给了我以下错误,即使是几乎空的JSP,就像....
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
hello world
Exception: Exception: org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "viewonestatus"
Failed URL: http://localhost:8080/viewonestatus/viewonestatus
Exception message: Failed to convert value of type [java.lang.String] to required type [java.lang.Long]; nested exception is java.lang.NumberFormatException: For input string: "viewonestatus"
非常感谢你的帮助
答案 0 :(得分:3)
@RequestMapping(value ="/viewonestatus/{id}")
public ModelAndView viewOneStatus(@PathVariable("id") Long id)
在这里,您声明一个名为“id”的路径变量,并将其类型声明为Long。 接下来你要调用url:
http://localhost:8080/viewonestatus/viewonestatus
第二个“viewonestatus”显然不是Long类型,这就是为什么spring抛出异常,因为它无法将“viewonestatus”转换为Long
你的要求应该是
http://localhost:8080/viewonestatus/12321
答案 1 :(得分:0)
好吧,这让我发疯了大约 1/2 小时。如果您使用的是 SpringBoot,这可能对您有所帮助。
我在控制器中意识到我正在使用
@Controller
代替
@RestController
就是这样。呃。