Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在SpringMVC中如何将数据从一个视图传输到另一个视图?_Java_Spring Mvc - Fatal编程技术网

Java 在SpringMVC中如何将数据从一个视图传输到另一个视图?

Java 在SpringMVC中如何将数据从一个视图传输到另一个视图?,java,spring-mvc,Java,Spring Mvc,应用程序比这更复杂,所以我尝试提取代码的相关部分 web应用程序的流程是通过调用selectItemForOrder()方法从列表中选择executingShop executingShop的id设置正确 但是当我按下调用finishOrder()方法的finishOrder按钮时,我得到了NullPointerException。当我按下finishOrder按钮时,我相信控制器类会被破坏,并且会创建一个新的控制器,因此如何传输数据 在数据库中保存id不是一个选项(这是我试图解决的问题) 抱歉

应用程序比这更复杂,所以我尝试提取代码的相关部分

web应用程序的流程是通过调用
selectItemForOrder()
方法从列表中选择executingShop

executingShop的id设置正确

但是当我按下调用
finishOrder()
方法的finishOrder按钮时,我得到了
NullPointerException
。当我按下finishOrder按钮时,我相信控制器类会被破坏,并且会创建一个新的控制器,因此如何传输数据

在数据库中保存id不是一个选项(这是我试图解决的问题)

抱歉,如果这是一个微不足道的问题。我是Spring MVC的新手

public class MyController {

private Integer executingShopId;

public View selectItemForOrder() {

setExecutingShopId(1);
return View;
}

public View finishOrder() {

System.out.println("Shop id: " + getExecutingShopId());
computeOrder(executingShopId);
return View;
}
}

是的,您可以在jsp页面上保持id的值 通过使用隐藏字段,如:

<form:hidden path="id"/>

您是否更改了控制器的配置?默认情况下,控制器为单例模式,因此您的代码不会导致问题。如果更改控制器为原型模式的配置,则会导致问题。当然,您可以将值存储在hidden中,但我建议您将值存储在session中,因为这样更合理、更安全

public View selectItemForOrder(HttpSession session) {

session.setAttribute(XXXX,YYY);
return View;
}

public View finishOrder(HttpSession session) {
Session.getAttribute(XXXX)
System.out.println("Shop id: " + getExecutingShopId());
computeOrder(executingShopId);
return View;
}

您需要在网页上执行此操作-通过