Java Spring引导-是否可以将控制器中定义的变量传递到模型类中?
举个简单的例子,有一个叫做“Car”的类。其中有一个方法,它接受一个名为“result”的字符串变量:Java Spring引导-是否可以将控制器中定义的变量传递到模型类中?,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,举个简单的例子,有一个叫做“Car”的类。其中有一个方法,它接受一个名为“result”的字符串变量: public class Car { public void move(String result) { System.out.println(result); } } 然后是使用car类的控制器: @Controller public class carController { private Car myCar; myCar.mov
public class Car {
public void move(String result) {
System.out.println(result);
}
}
然后是使用car类的控制器:
@Controller
public class carController {
private Car myCar;
myCar.move("Vroom vroom");
}
但是,当它试图通过“Vroom Vroom”时,它崩溃并给出以下信息:
原因:java.lang.NullPointerException:null
我调试了它,发现它在执行使用需要传入的值调用该方法的行时崩溃
似乎无法将变量从Spring引导控制器传递到模型类
以下是来自我的项目的实际错误消息:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-04-15 16:54:46.331 ERROR 7388 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalStateException: Failed to execute CommandLineRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:787) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:768) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
at com.demo.coronavirus.CovidUkApplication.main(CovidUkApplication.java:13) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_241]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_241]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_241]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_241]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.2.6.RELEASE.jar:2.2.6.RELEASE]
Caused by: java.lang.NullPointerException: null
at com.demo.coronavirus.controller.DisplayCasesController.lambda$0(DisplayCasesController.java:35) ~[classes/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:784) [spring-boot-2.2.6.RELEASE.jar:2.2.6.RELEASE]
... 10 common frames omitted
首先,您的
Car
类尚未实例化。您需要实例化一个Car
对象来执行任务
Car myCar=new Car();
其次,您的Car
类没有任何vroom
方法,而是move(String str)
方法。
因此,尝试以下方法来实现您的目标:
Car myCar=new Car();
myCar.move("Your String here");
哎呀,我把名字改了一部分,我的意思是“移动”,那么,你用上面提到的方法得到了什么?实例化类似乎就是这样。新手犯了错误,我太生疏了。谢谢