如何在Spring MVC中将数据从一个视图传输到另一个视图?
问题描述:
该应用程序比这更复杂,所以我试图提取代码的相关部分。如何在Spring MVC中将数据从一个视图传输到另一个视图?
Web应用程序的流程是我通过调用selectItemForOrder()
方法从列表中选择executionShop。
正在设置executionShop的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;
}
}
答
你改变控制器的配置?对于默认的控制器是单身模式,所以你的代码不会导致问题。如果您更改了Controller的原型模式的配置,则会导致问题。绝对可以隐藏价值,但我建议您将价值存储在会话中,因为它更有意义且更安全。
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;
}
答
是的,你可以保持使用隐藏域一样维持ID在 jsp页面值:
<form:hidden path="id"/>
你需要做的这个网页上 - 通过发送一个'' 的 –
2013-03-09 12:23:45
'id'非常感谢你。 – Mythul 2013-03-09 20:25:24