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